go語言的GOPATH詳解

2021-10-20 20:14:42 字數 2659 閱讀 4722

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...