20130103Windows下编译GO程序

fengbangyue · · 1874 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

   今天试着编译了一下beego库,顺便学习了一下go的安装环境。

   下解压包安装在d:目录下go目录,设置了

   GOROOT=D:\go

   GOARCH=386

   GOBIN=%GOROOT%\bin

   在D:\go下创建目录project,然后创建工程HelloGO.

   HelloGO下目录结构为:

   HelloGO

           ----src

                ------HelloGO.go(是对beego的测试)

          -----pkg(可选)

           ----bin(说这个是可选项的,但是我不创建的时候生成会失败)

          -----make.bat(用来编译src下文件)


由于HelloGO.go是对beego的测试,内容如下:

// HelloGo
package main

import (
    "github.com/astaxie/beego"
)

type MainController struct {
    beego.Controller
}

func (this *MainController) Get() {
    this.Ctx.WriteString("hello world,这是一个WEB程序")
}

func main() {
    beego.RegisterController("/", &MainController{})
    //beego.HttpPort = 8080 // default
    beego.Run()
}

go build的时候会提示少
github.com/astaxie/beego
包,然后就需要使用go get -v  
github.com/astaxie/beego
先下载包,如果使用默认的GOPATH,会包包吓到go目录下的src,和安装到pkg中,这个肯定会污染了系统。

在网上收了发现使用make.bat来设置GOPATH,设置后就生成到自己的src,和pkg下面了。

但是 bin目录怎么设置也还是不行,要么生成在go.exe目录,下面生成在HelloGO.go目录。

不会生成到./bin目录,最后只有手动创建/bin目录,用go build -o %GOBIN%/HelloGO.exe HelloGo.go指定

整个make.bat内容如下:

@echo off

setlocal

if exist make.bat goto ok
echo make.bat must be run from its folder
goto end

: ok

set OLDGOPATH=%GOPATH%
set GOPATH=%~dp0
set GOBIN=%GOPATH%\bin

gofmt -tabs=false -tabwidth=4 -w src
go get -v github.com/astaxie/session
go get -v github.com/russross/blackfriday
go get -v github.com/astaxie/beego
go build ./src/beego
go install beego
rmdir /S /Q %GOBIN%
mkdir %GOBIN%
go build -o %GOBIN%/HelloGo.exe ./src/HelloGo.go

:end
echo finishe
pause

这种方法不知道对不对,但至少编译没问题了,程序也能够正常运行。

创建一个Web程序几行代码就搞定了,不用再向以前学Asp、Asp.net一样去部署环境。

是激起我学习Go语言的一大原因之一。

好了。


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:fengbangyue

查看原文:20130103Windows下编译GO程序

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1874 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传