"翻譯自Go語言作者的部落格。這只是設定了GOPATH預設值,GOROOT還是得自己設定。"
從Go 1.8開始,如果GOPATH的環境變數為空,Go將會設定一個預設的GOPATH環境變數。
Go初學者第一次安裝完Go之後,他們往往會因為忘記設定GOPATH環境變數而得到you have to set a GOPATH這樣的錯誤。這個需求的優先順序逐漸變高。對於Go的新使用者來說,解釋GOPATH的作用、指導他們如何設定GOPATH將會使它們不能專注使用Go。尤其是有些時候,這些人並不是要去使用Go語言去開發,而是使用go get
去下載一些必要的命令。
Go 1.8將會設定預設的GOPATH。如果你自己沒有設定GOPATH,Go將會使用預設值。預設GOPATH是:
- 在Unix-like系統上是在
$HOME/go
目錄下 - 在Windows系統下是
%USERPROFILE%\go
雖然已經有了預設的GOPATH,但是它並不能解決所有問題:
- 我們還是得自己把
$GOPATH/bin
新增到PATH
裡面,這樣通過go get
和go install`安裝的二進位制程式才能夠被直接執行。(譯者注:當然,通過絕對路徑執行這些程式也是可以的,只不過比較麻煩)。 - Go語言的開發者依然需要了解GOPATH的作用和它的目錄結構。
- 如果你的
GOROOT
路徑(就是你讓Go原始碼的位置)和預設的GOPATH是一樣的,並且你並沒有設定一個預設的GOPATH,Go也並不為為你設定預設GOPATH,因為這樣會把GOROOT裡面的內容搞亂。
當你有疑問的時候,可以執行命令go env GOPATH
來檢查GOPATH的路徑。如果有問題,比如上面說的情況,Go並沒有自動生成GOPATH,這個命令將會列印空。