gopath是go語言中使用的乙個環境變數,使用絕對路徑提供專案的工作目錄。工作目錄是乙個工程開發的相對參考目錄。
gopath適合處理大量go語言原始碼、多個包組合而成的複雜工程。
1、使用命令列檢視gopath資訊
在命令列中執行go env後,結果如下:
go111module="auto"
goarch="amd64"
gobin=""
gocache="/root/.cache/go-build"
goenv="/root/.config/go/env"
goexe=""
goflags=""
gohostarch="amd64"
gohostos="linux"
goinsecure=""
gonoproxy=""
gonosumdb=""
goos="linux"
gopath="/root/gowork/chash"
goprivate=""
goproxy=""
goroot="/usr/local/go"
gosumdb="sum.golang.org"
gotmpdir=""
gotooldir="/usr/local/go/pkg/tool/linux_amd64"
gccgo="gccgo"
ar="ar"
cc="gcc"
cxx="g++"
cgo_enabled="1"
gomod="/root/gowork/chash/src/cum/go.mod"
cgo_cflags="-g -o2"
cgo_cppflags=""
cgo_cxxflags="-g -o2"
cgo_fflags="-g -o2"
cgo_ldflags="-g -o2"
pkg_config="pkg-config"
gogccflags="-fpic -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build741438149=/tmp/go-build -gno-record-gcc-switches"
命令列說明如下:
從命令列輸出中,可以看到gopath設定的路徑為:/root/gowork/chash
在 go 1.8 版本之前,gopath 環境變數預設是空的。從 go 1.8 版本開始,go 開發包在安裝完成後,將 gopath 賦予了乙個預設的目錄,參見下表。
平台gopath 預設值
舉 例windows 平台
%userprofile%/go
c:\users\使用者名稱\go
unix 平台
$home/go
/home/使用者名稱/go
2、使用gopath的工程結構
在 gopath 指定的工作目錄下,**總是會儲存在 $gopath/src 目錄下。在工程經過 go build、go install 或 go get 等指令後,會將產生的二進位制可執行檔案放在 $gopath/bin 目錄下,生成的中間快取檔案會被儲存在 $gopath/pkg 下。
如果需要將整個原始碼新增到版本管理工具(version control system,vcs)中時,只需要新增 $gopath/src 目錄的原始碼即可。bin 和 pkg 目錄的內容都可以由 src 目錄生成。
3、設定和使用gopath
1) 設定當前目錄為gopath
選擇乙個目錄,在目錄中的命令列中執行下面的指令:
export gopath=`pwd`
該指令中的 pwd 將輸出當前的目錄,使用反引號`
將 pwd 指令括起來表示命令行替換,也就是說,使用`pwd`
將獲得 pwd 返回的當前目錄的值。例如,假設你的當前目錄是「/home/eric/go」,那麼使用`pwd`
將獲得返回值「/home/eric/go」。
使用 export 指令可以將當前目錄的值設定到環境變數 gopath中。
2) 建立gopath中的原始碼目錄
使用下面的指令建立 gopath 中的 src 目錄,在 src 目錄下還有乙個 hello 目錄,該目錄用於儲存原始碼。
mkdir -p src/hello
mkdir 指令的 -p 可以連續建立乙個路徑。
3) 新增main.go原始碼檔案
使用 linux 編輯器將下面的原始碼儲存為 main.go 並儲存到 $gopath/src/hello 目錄下。
package main
import "fmt"
func main()
4)編譯原始碼並執行
此時我們已經設定了 gopath,因此在 go語言中可以通過 gopath 找到工程的位置。
在命令列中執行如下指令編譯原始碼:
go install hello
編譯完成的可執行檔案會儲存在 $gopath/bin 目錄下。
在 bin 目錄中執行 ./hello,命令列輸出如下:
hello world
5)設定好gopath之後,go會識別gopath下的src目錄,而真正的引用的包名,是src下的目錄名,然後才是**模組名。
GO語言GOPATH的設定
如果你裝 beego 無法執行 bee version 那麼多半又是 gobin 路徑錯誤了,那麼,就重新帶著大家試試唄 1 首先在你將要設定成gopath的資料夾下建立三個資料夾分別叫 bin src pkg 2 配置go環境變數gopath和gobin 1 開啟終端,cd 2 檢視是否有.bas...
go語言學習筆記(一) GoPath
windows下安裝go和設定多個工作區 linux下安裝go和配置工作區 goroot golang的安裝路徑 gopath 可以理解為工作目錄或者工作區,也是平時接觸最多的乙個變數。它可以是乙個目錄,可以是多個目錄路徑,每個目錄代表乙個工作區。這些目錄用於放置go語言的原始碼檔案 src 以及安...
go語言的工作空間和GOPATH環境變數
go語言並沒有強制一定要使用一定的工作空間和專案結構,對於小型的go程式依靠go run等命令就可以直接編譯執行。然而,保持良好的工作空間和檔案結構,對於管理源 和發布程式都是非常有幫助的。對於大型的go語言專案,工作空間則是一定要的。go語言的工作空間其實就是乙個檔案目錄,目錄中必須包含src p...