網頁

2021/12/5

Golang Go環境變數 GOPATH作用

Go的環境變數GOPATH的作用如下。


GOPATH用來存放Go專案相關程式碼的地方,讓Go知道要去哪找Go專案的程式碼及依賴。

GOPATH預設路徑:

  • Linux、Mac為$HOME/go(e.g. /Users/<username>/go);
  • Windows為%USERPROFILE%\go (e.g. C:\Users\<username>)。

<username>為系統使用者名稱。


GOPATH規定下面有srcpkgbin三個目錄:

  • bin - 存放編譯的Go可執行命令檔,即go install編譯並安裝main package可執行程式的預設存放位置。
  • pkg - 存放下載的套件及專案依賴的套件,即go install編譯並安裝非可執行package的預設存放位置。
    • mod - 存放Go module下載的第三依賴套件原始碼。
  • src - 存放專案原始碼檔。

在Go 1.11以前沒有go module,所以專案原始碼必須放在GOPATH/src目錄下,這樣Go在import依賴package及編譯時才知道要去哪找專案的Go原始碼檔,這也是為什麼GOPATH稱作workspace的原因;然而go module出現後就不必要把專案放在GOPATH/src目錄。

GOPATH常與GOROOT混淆。GOROOT為Go主程式安裝的位置;GOPATH是專案原始碼、編譯的依賴套件及可執行檔的存放路徑。例如在macOS以Homebrew安裝Go
GOROOT="/usr/local/Cellar/go/<version>/libexec"
GOPATH="/Users/<username>/go"


沒有留言:

張貼留言