GoLang之環境變數和Project目錄配置的方法
2013-12-29 wcdj
0 大綱
本文總結在安裝Go時如何配置GoLang的環境變數和建立一個Project的目錄結構。下文描述以*NIX環境為主,Windows方法類似。
1 安裝及環境變數
其中:
(1) 預設安裝比較簡單,但需要root許可權,預設安裝路徑是:/usr/local/go;
(2) 自定義安裝需要另外配置GOROOT環境變數;
本文采用預設安裝,環境是OS X 10.9.1。下面的環境變數需要新增到當前使用者的 .bashrc 配置中。其中:
(1) 顯示將Go的bin安裝目錄配置在PATH環境變數中;
(2) 注意GOPATH不是Go的安裝目錄,而是使用者的工作目錄(可自定義),Go命令依賴GOPATH這個重要的環境變數。
# Golang enviroment variable
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/Users/gerryyang/code/go/mygo
2 Project目錄結構
GOPATH的說明:
(a) GOPATH允許多個目錄,當有多個目錄時,請注意分隔符,*NIX下是冒號,Windows下是分號。當有多個GOPATH是,預設將go get的內容放在第一個目錄下。
(b) GOPATH目錄約定有三個子目錄:
--- src 存放原始碼(比如:.go / .c / .h / .s 等)
--- pkg 編譯後生成的檔案(比如:.a)
--- bin 編譯後生成的可執行檔案 (不建議把這個目錄放在PATH下,雖然方便!)
一個簡單的Project,計算一個數的平方根,GOPATH如上所配,初始的目錄結構如下所示:
注意:建議package的名稱和目錄名保持一致,例如,main.go在mathapp包內,並在mathapp目錄下。
sqrt.go
package mymath
func Sqrt(x float64) float64 {
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
main.go
package main import ( "fmt" "mymath" ) func main() { fmt.Printf("use my package to calc, Sqrt(2)=%v\n", mymath.Sqrt(2)) }
由於我們已經配置好了GOPATH環境變數,因此可以通過兩種方法編譯安裝使用者自定義的包:
(1) 進入對應的應用包目錄,然後執行 go install,即可完成安裝;
(2) 在任意的目錄下執行程式碼
go install yourapp;
針對上面的例子,通過如下步驟進行編譯安裝:
(1) 進入 mymath/ 下,執行 go install mymath,此時目錄結構如下:
(2) 進入 mathapp/ 下,執行 go build,此時目錄結構如下:
(3) 進入 mathapp/ 下,執行 go install,此時目錄結構如下:
(4) 其實(2)和(3)步可以合併成一步,進入 mathapp/ 下,直接執行 go install,此時目錄結構如下:
(5) 執行測試程式,進入 bin/ 下並執行程式: