首頁 > 軟體

golang 在windows中設定環境變數的操作

2021-04-29 13:00:29

安裝完成後需要在系統環境變數中設定

GOPATH為專案目錄

GOROOT為安裝目錄

path中設定好安裝目錄到bin目錄

開啟cmd,輸入go env,出現如下設定生效

補充:Golang 環境變數須知

1.前言

無論你是使用 Windows、Linux 還是 Mac 作業系統來開發 Go 應用程式,在安裝好 Go 安裝語言開發工具之後,都必須設定好 Go 語言開發所要求的 環境變數,才算初步完成 Go 開發環境的搭建。

但對於一些初學者來說,可能不太明白 Go 語言中常用的環境變數的作用以及如何設定環境變數,下面在 Windows 環境下來講講。

2.檢視環境變數

安裝完 Go 後,我們可以使用 go env 命令檢視當前 Go 的所有預設環境變數。

go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:UsersdablelvAppDataLocalgo-build
set GOENV=C:UsersdablelvAppDataRoaminggoenv
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:gopkgmod
set GONOPROXY=git.code.oa.com,git.woa.com
set GONOSUMDB=git.code.oa.com,git.woa.com
set GOOS=windows
set GOPATH=D:go
set GOPRIVATE=git.code.oa.com,git.woa.com
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:Program FilesGo
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:Program FilesGopkgtoolwindows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:codekknockKnockKnockapplicationgroup_srvgo.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:UsersdablelvAppDataLocalTempgo-build853783354=/tmp/go-build -gno-record-gcc-switches

也可以查到指定環境變數的值。

go env GOROOT
C:Program FilesGo

Go 語言中可以設定的環境變數有很多,每個環境變數都有其作用,不過很多我們可能都用不到,一般需要了解下面幾個最常用的就夠了。

GOROOT
GOPATH
GO111MODULE
GOPROXY
GOPRIVATE
GOBIN
GOOS
GOARCH

關於環境變數的詳細說明,可使用命令go help environment查詢。

GOROOT

GOROOT 表示 Go 語言的安裝目錄。

GOROOT 的作用是用來索引 Go 語言的安裝目錄下的相關資源,比如 bin 目錄的工具(如 go 命令),src 目錄下的原始碼等。

GOPATH

GOPATH 用於指定我們的開發工作區,可以有多個。

按照 Go 開發規範,GOPATH 目錄下一般分為三個子目錄 src,pkg,bin。

src 目錄存放我們需要開發的專案原始碼,pkg 存放依賴的包和編譯後的靜態庫檔案,bin 放原始碼編譯後臺的可執行檔案。

下面是一個 GOPATH 目錄範例佈局。

GOPATH=/home/user/go
/home/user/go/
    src/
        foo/
            bar/               (go code in package bar)
                x.go
            quux/              (go code in package main)
                y.go
    bin/
        quux                   (installed command)
    pkg/
        linux_amd64/
            foo/
                bar.a          (installed package object)

注意:

(1)如果 GOPATH 未顯示設定,則預設為使用者主目錄中名為 go 的子目錄。Unix 下為$HOME/go,Windows 下為%USERPROFILE%go(一般為C:UsersYourNamego),Plan 9 下為$home/go。

(2)使用模組時,GOPATH 不再用於解析匯入,但是它仍然用於儲存下載的原始碼(在GOPATH/pkg/mod中)和編譯的命令(在GOPATH/bin中)。

(3)使用命令go help gopath可檢視 GOPATH 詳細說明。

GO111MODULE

在 go1.11 的時候推出了這個 go modules 來解決依賴管理的問題。

通過變數 GO111MODULE 來控制 Go Module 的開啟和關閉,取值 off、on 或 auto。

從 Go 1.13 開始,Go Module 作為 Golang 中的標準包管理器。

GOPROXY

go get 下載依賴時使用的代理地址列表,使用逗號 (,) 或豎槓 (|) 分隔。

當用 go 命令查詢依賴模組時,它會按順序存取 GOPROXY 列表中的每個代理,直到收到成功的響應或出現終端錯誤。

GOPROXY 中可能會存在兩個關鍵字來代替代理URL:

off:不允許從任何源下載依賴的模組

direct: 直接從版本控制儲存庫下載,而不是使用模組代理

GOPROXY 預設值為https://proxy.golang.org,direct。

GOPRIVATE

go get 通過代理服務拉取倉庫時,因為代理服務不可能存取到私有倉庫(一般為企業內部程式碼管理平臺),會出現 404 錯誤。

go1.13 版本提供了一個方便的解決方案:GOPRIVATE 環境變數。

如:

setx GOPRIVATE=gitlab.com,git.woa.com

GOBIN

用於儲存我們使用go install命令安裝的程式。

如果沒有設定 GOBIN,程式一般會安裝到為GOPATH/bin目錄。

GOOS

當前的作業系統。例如 linux、darwin、windows、netbsd、freebsd、openbsd、solaris、plan9 等。

注意 mac os對應的值是 darwin。

GOARCH

表示 CPU 架構。如 amd64、386、arm、ppc64 等。

3.小結

環境變數的設定,可以影響我們開發和編譯專案的過程與結果,所以還是很有必要了解一下的。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。如有錯誤或未考慮完全的地方,望不吝賜教。


IT145.com E-mail:sddin#qq.com