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
編譯並安裝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"
。
沒有留言:
張貼留言