設定Golang的GOPATH

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

Go是一門全新的靜態類型開發語言,具有自動記憶體回收豐富的內建類型,函數多傳回值錯誤處理匿名函數,並發編程反射等特性.

golang安裝

golang下載

sudo tar -zvxf go1.6.2.linux-amd64.tar.gzsudo mv go /usr/local/go#設定環境變數vi /etc/profileexport GOROOT=/usr/local/go  #設定為go安裝的路徑export GOPATH=$HOME/gocode   #預設安裝包的路徑export PATH=$PATH:$GOROOT/bin:$GOPATH/binsource /etc/profile

GOPATH設定

go命令依賴一個重要的環境變數:$GOPATH
GOPATH允許多個目錄,當有多個目錄時,請注意分隔字元,多個目錄的時候Windows是分號;,Linux系統是冒號:
當有多個GOPATH時預設將go get擷取的包存放在第一個目錄下
$GOPATH目錄約定有三個子目錄

  • src存放原始碼(比如:.go .c .h .s等)
  • pkg編譯時間產生的中間檔案(比如:.a)
  • bin編譯後產生的可執行檔(為了方便,可以把此目錄加入到 $PATH 變數中,如果有多個gopath,那麼使用${GOPATH//://bin:}/bin添加所有的bin目錄)

代碼目錄結構規劃

GOPATH下的src目錄就是接下來開發程式的主要目錄,所有的源碼都是放在這個目錄下面,那麼一般我們的做法就是一個目錄一個項目,例如: $GOPATH/src/mymath 表示mymath這個應用程式套件或者可執行應用,這個根據package是main還是其他來決定,main的話就是可執行應用,其他的話就是應用程式套件,這個會在後續詳細介紹package。

下面我就以mymath為例來講述如何編寫應用程式套件,執行如下代碼
建立一個自己golang代碼的路徑myGolang

export GOPATH=$HOME/gocode:$HOME/myGolangexport PATH=$PATH:$GOROOT/bin:${GOPATH//://bin:}/bin
cd $GOPATH/srcmkdir mymath

建立檔案fabnacci.go

package mymathfunc Fabnacci(num int) int {  if num == 0 || num == 1 {    return num  }  return Fabnacci(num -1) + Fabnacci(num -2)}

編譯應用

上面我們已經建立了自己的應用程式套件,如何進行編譯安裝呢?有兩種方式可以進行安裝

  • 進入對於的安裝包目錄,然後執行go install
  • 在任意的目錄下指定需要編譯的包go build mymath
    編譯後可以在$GOPATH/pkg/${GOOS}_${GOARCH}下看到mymath.a檔案
    .a檔案是應用程式套件,那麼我們如何進行調用呢?
    接下來我們建立一個應用程式來調用這個應用程式套件
cd $GOPATH/srcmkdir mathapp

建立Fabnacci.go檔案

package mainimport (  "mymath"  "fmt"  "os"  "strconv")func main() {  if len(os.Args) < 2 {    fmt.Println("input number")    return  }  num, err := strconv.Atoi(os.Args[1])  if err != nil {    fmt.Println("input must be number", err)    return  }  fmt.Println("Fabnacci :", num, mymath.Fabnacci(num))}

如何編譯器呢?進入該應用目錄,然後執行go build,在該目錄下會產生mathapp可執行檔

time ./mathapp 45Fabnacci : 45 1134903170real    0m10.836suser    0m10.208ssys 0m0.032s

如何安裝應用程式?進入該目錄執行go install,那麼會在$GOPATH/bin/增加一個可執行檔mathapp
$GOPATH/bin/目錄已經加入了環境變數,可以直接運行mathapp

參照:

  • GOPATH與工作空間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.