設置GOROOT的原因
編譯器的位置指定的時候,需要指定GO開發包的安裝位置,然后設置環境變量PATH的時候,需要指定到安裝包下的bin目錄,其中就有以下的編譯/執行器.所以GOROOT指定了前面的路徑.
當使用go run 源碼,自動化的完成編譯和執行二進制文件的時候.源碼必須放在當前運行go解釋器的同一目錄下,然后編譯器才能訪問的到.這時不用設置GOPATH.
當使用go build 源碼,要先編譯成二進制代碼,再執行二進制代碼的方式來運行程序.
設置GOPATH的原因
從 Go 1.8 版本開始,Go 開發包在安裝完成后,將 GOPATH 賦予了一個默認的目錄
如果不使用工作目錄的概念,在多人開發時,每個人有一套自己的目錄結構,讀取配置文件的位置不統一,輸出的二進制運行文件也不統一,這樣會導致開發的標准不統一,影響開發效率
工作空間中的內容:
GOPATH
下應有三個目錄:
-
src
:包含Go的源文件,它們被組織成包(每個目錄都對應一個包) src 執行go install時候必須有,此外子目錄為包.包中為源碼. -
pkg
:包含包對象,也即編譯好的庫文件*.a
-
bin
:包含可執行命令 當執行go install時會自動生成二進制文件放到這里.
go install運行時跟src/bin/pkg關聯.而go run/go build就不管工作目錄了.只在當前目錄下工作.