1. 程式人生 > >20130103Windows下編譯GO程式

20130103Windows下編譯GO程式

   今天試著編譯了一下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語言的一大原因之一。

好了。