GoLang之環境變數和Project目錄配置的方法

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

2013-12-29 wcdj


0 大綱

本文總結在安裝Go時如何配置GoLang的環境變數和建立一個Project的目錄結構。下文描述以*NIX環境為主,Windows方法類似。


1 安裝及環境變數

Go的安裝方法包括:預設安裝和自訂安裝,官方的描述請參看這裡:http://golang.org/doc/install

其中:

(1) 預設安裝比較簡單,但需要root許可權,預設安裝路徑是:/usr/local/go;

(2) 自訂安裝需要另外配置GOROOT環境變數;


本文採用預設安裝,環境是OS X 10.9.1。下面的環境變數需要添加到目前使用者的 .bashrc 配置中。其中:

(1) 顯示將Go的bin安裝目錄配置在PATH環境變數中;

(2) 注意GOPATH不是Go的安裝目錄,而是使用者的工作目錄(可自訂),Go命令依賴GOPATH這個重要的環境變數。

# Golang enviroment variableexport GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/binexport 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 mymathfunc Sqrt(x float64) float64 {z := 0.0for i := 0; i < 1000; i++ {z -= (z*z - x) / (2 * x)}return z}

main.go

package mainimport ("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/ 下並執行程式:


3 參考

[1] Go Web編程

[2] http://golang.org/doc/install



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.