golang 在windows中設置環境變量的操作

安裝完成後需要在系統環境變量中設置

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:\Users\dablelv\AppData\Local\go-build
set GOENV=C:\Users\dablelv\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\go\pkg\mod
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 Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\code\kknock\KnockKnock\application\group_srv\go.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:\Users\dablelv\AppData\Local\Temp\go-build853783354=/tmp/go-build -gno-record-gcc-switches

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

go env GOROOT
C:\Program Files\Go

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:\Users\YourName\go),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.小結

環境變量的設置,可以影響我們開發和編譯項目的過程與結果,所以還是很有必要瞭解一下的。

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

推薦閱讀: