溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Go語言環(huán)境配置

發(fā)布時(shí)間:2020-07-02 12:29:40 來源:網(wǎng)絡(luò) 閱讀:4443 作者:LanYuLei 欄目:編程語言

下載安裝

國(guó)內(nèi)的Go下載站點(diǎn),根據(jù)自己的系統(tǒng)選擇對(duì)應(yīng)的版本進(jìn)行下載安裝:

https://studygolang.com/dl

Go的安裝方式除了源碼安裝,其他的都相當(dāng)簡(jiǎn)單,就不過多的贅述了。

環(huán)境變量

下面介紹下Go語言中需要設(shè)置的一些環(huán)境變量,具體如何設(shè)置這些環(huán)境變量,請(qǐng)自行搜索設(shè)置方式。

另外系統(tǒng)的不同,設(shè)置的方式也不相同。

GOROOT

GOROOT是Go語言的安裝目錄。

Windows中,GOROOT的默認(rèn)位置是C:/go,而在Mac OS或者LinuxGOROOT的默認(rèn)位置是/usr/local/go,如果Go安裝在其他目錄,而需要將GOROOT的位置修改為對(duì)應(yīng)的目錄。

另外,GOROOT/bin下包含Go為我們提供的工具鏈,因此應(yīng)該將GOROOT/bin配置到環(huán)境變量PYTH中,方便我們?cè)谌种惺褂肎o的工具鏈。

GOPATH

GOPATH是Go語言的工作目錄。

go install/go get和 go的工具等會(huì)用到GOPATH環(huán)境變量。

GOPATH是作為編譯后二進(jìn)制的存放目的地和import包時(shí)的搜索路徑。

GOPATH主要包含三個(gè)目錄: bin、pkg、src

  • bin:主要存放可執(zhí)行文件。
  • pkg:存放編譯好的庫(kù)文件, 主要是*.a文件。
  • src:下主要存放go的源文件。

此外還需要注意的是不要講GOROOT設(shè)置城Go語言的路徑,避免出現(xiàn)不必要的沖突。

GOPATH可以設(shè)置多個(gè)工作區(qū),不過當(dāng)我們使用go get命令去獲取遠(yuǎn)程庫(kù)的時(shí)候,一般會(huì)安裝到第一個(gè)工作區(qū)當(dāng)中。

# 每個(gè)工作區(qū)使用分號(hào),分割即可。
export GOPATH=/opt/go;$home/go
GOBIN

GOBIN是我們?cè)陂_發(fā)程序編譯后二進(jìn)制命令的安裝目錄。

當(dāng)我們使用go install命令編譯和打包應(yīng)用程序時(shí),該命令會(huì)將編譯后的二進(jìn)制程序打包GOBIN目錄,一般我們將GOBIN設(shè)置為GOPATH/bin。

GOOS與GOARCH

GOOSGOARCH是當(dāng)需要進(jìn)行跨平臺(tái)編譯的時(shí)候,需要設(shè)置的環(huán)境變量,這種編譯方式叫做交叉編譯。

所謂的交叉編譯,是指在一個(gè)平臺(tái)上就生成可以在另外一個(gè)平臺(tái)上運(yùn)行的代碼,例如我們可以在32位的Windows操作系統(tǒng)上開發(fā),然后生成可以在64位的Linux操作系統(tǒng)上運(yùn)行的二進(jìn)制進(jìn)程。

  • GOOS:它的默認(rèn)值是我們當(dāng)前的操作系統(tǒng),例如Windows、Linux,但是需要注意的是Mac OS的對(duì)應(yīng)值是darwin。
  • GOARCH:表示CPU的架構(gòu),如386,amd64,arm等。

可以通過go env來獲取當(dāng)前GOOSGOARCH的值。

$ go env GOOS GOARCH
darwin
amd64

GOOSGOARCH的取值范圍。

GOOSGOARCH的值成對(duì)出現(xiàn),而且只能是下面列表對(duì)應(yīng)的值。

GOOS        GOARCH
------------------
android     arm
darwin      386
darwin      amd64
darwin      arm
darwin      arm64
dragonfly   amd64
freebsd     386
freebsd     amd64
freebsd     arm
linux       386
linux       amd64
linux       arm
linux       arm64
linux       ppc64
linux       ppc64le
linux       mips
linux       mipsle
linux       mips64
linux       mips64le
linux       s390x
netbsd      386
netbsd      amd64
netbsd      arm
openbsd     386
openbsd     amd64
openbsd     arm
plan9       386
plan9       amd64
solaris     amd64
windows     386
windows     amd64

編譯在64位Linux操作系統(tǒng)上運(yùn)行的目標(biāo)程序

$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

編譯arm架構(gòu)Android操作上的目標(biāo)程序

$ CGO_ENABLED=0 GOOS=android GOARCH=arm GOARM=7 go build main.go

點(diǎn)擊查看完整文章

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI