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規定下面有src、pkg及bin三個目錄:
bin- 存放編譯的Go可執行命令檔,即go install編譯並安裝mainpackage可執行程式的預設存放位置。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"。
沒有留言:
張貼留言