婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解

Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解

熱門(mén)標(biāo)簽:地圖標(biāo)注測(cè)試 濮陽(yáng)自動(dòng)外呼系統(tǒng)代理 智能電銷(xiāo)機(jī)器人營(yíng)銷(xiāo) 福州鐵通自動(dòng)外呼系統(tǒng) 賺地圖標(biāo)注的錢(qián)犯法嗎 澳門(mén)防封電銷(xiāo)卡 廣東語(yǔ)音外呼系統(tǒng)供應(yīng)商 烏魯木齊人工電銷(xiāo)機(jī)器人系統(tǒng) 長(zhǎng)沙ai機(jī)器人電銷(xiāo)

無(wú)論你是使用Windows,Linux還是Mac OS操作系統(tǒng)來(lái)開(kāi)發(fā)Go應(yīng)用程序,在安裝好Go安裝語(yǔ)言開(kāi)發(fā)工具之后,都必須配置好Go語(yǔ)言開(kāi)發(fā)所要求的 環(huán)境變量,才算初步完成Go開(kāi)發(fā)環(huán)境的搭建。

但對(duì)于一些初學(xué)者來(lái)說(shuō),可能不太明白Go語(yǔ)言中常用的環(huán)境變量(Environment variables)的作用以及如何設(shè)置環(huán)境變量,今天我們來(lái)講講。

注意:Go提供的Windows操作系統(tǒng)安裝包(.msi后綴)安裝完成后,會(huì)自動(dòng)配置幾個(gè)常用的環(huán)境變量。

常用環(huán)境變量

Go語(yǔ)言中可以設(shè)置的環(huán)境變量有很多,每個(gè)環(huán)境變量都有其作用,不過(guò)很多我們可能都用不到,一般需要了解也是最重要的有以下幾個(gè):

$ go env //打印Go所有默認(rèn)環(huán)境變量
$ go env GOPATH //打印某個(gè)環(huán)境變量的值

GOROOT

環(huán)境變量GOROOT表示Go語(yǔ)言的安裝目錄。

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

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

Linux設(shè)置GOROOT演示

export GOROOT=~/go
export PATH=$PATH:$GOROOT/bin

GOPATH

注意,GOPATH的值不能與GOROOT相同。

環(huán)境變量GOPATH用于指定我們的開(kāi)發(fā)工作區(qū)(workspace),是存放源代碼、測(cè)試文件、庫(kù)靜態(tài)文件、可執(zhí)行文件的工作。

在類(lèi)Unix(Mac OS或Linux)操作系統(tǒng)中GOPATH的默認(rèn)值是$home/go。而在Windows中GOPATH的默認(rèn)值則為%USERPROFILE%\go(比如在Admin用戶(hù),其值為C:\Users\Admin\go)。

當(dāng)然,我們可以通過(guò)修改GOPATH來(lái)更換工作區(qū),比如將工作設(shè)置opt/go方式如下:

Linux設(shè)置GOPATH演示

export GOPATH=/opt/go

還有,可以在GOPATH中設(shè)置多個(gè)工作區(qū),如:

export GOPATH=/opt/go;$home/go

GOPATH的子目錄

上面的代碼表示我們指定兩個(gè)工作區(qū),不過(guò)當(dāng)我們使用go get命令去獲取遠(yuǎn)程庫(kù)的時(shí)候,一般會(huì)安裝到第一個(gè)工作區(qū)當(dāng)中。

按照Go開(kāi)發(fā)規(guī)范,GOPATH目錄下的每個(gè)工作一般分為三個(gè)子目錄:src,pkg,bin,所以我們看到的每個(gè)工作區(qū)是這樣子的:

bin/

    hello                      # 可執(zhí)行文件

    outyet                     # 可執(zhí)行文件

src/

    github.com/golang/example/

        .git/                 

    hello/

        hello.go               # 命令行代碼

    outyet/

        main.go                # 命令行代碼

        main_test.go           # 測(cè)試代碼

    stringutil/

        reverse.go             # 庫(kù)文件

        reverse_test.go        # 庫(kù)文件

    golang.org/x/image/

        .git/                  

    bmp/

        reader.go              # 庫(kù)文件

        writer.go              # 庫(kù)文件

src目錄放的是我們開(kāi)發(fā)的源代碼文件,其下面對(duì)應(yīng)的目錄稱(chēng)為包,pkg放的是編譯后的庫(kù)靜態(tài)文件,bin放的是源代碼編譯后臺(tái)的可執(zhí)行文件。

GOBIN

環(huán)境變量GOBIN表示我們開(kāi)發(fā)程序編譯后二進(jìn)制命令的安裝目錄。

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

Linux設(shè)置GOBIN演示

export GOBIN=$GOPATH/bin

上面的代碼中,我們都是使用export命令設(shè)置環(huán)境變量的,這樣設(shè)置只能在當(dāng)前shell中有效,如果想一直有效,如在Linux中,則應(yīng)該將環(huán)境變量添加到/etc/profile等文件當(dāng)中。

交叉編譯

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

在其他編程語(yǔ)言中進(jìn)行交叉編譯可能要借助第三方工具,但在Go語(yǔ)言進(jìn)行交叉編譯非常簡(jiǎn)單,最簡(jiǎn)單只需要設(shè)置GOOS和GOARCH這兩個(gè)環(huán)境變量就可以了。

GOOS與GOARCH

GOOS的默認(rèn)值是我們當(dāng)前的操作系統(tǒng), 如果windows,linux,注意mac os操作的上的值是darwin。 GOARCH則表示CPU架構(gòu),如386,amd64,arm等。

獲取GOOS和GOARCH的值

我們可以使用go env命令獲取當(dāng)前GOOS和GOARCH的值。

$ go env GOOS GOARCH

GOOS和GOARCH的取值范圍

GOOS和GOARCH的值成對(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)程序

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

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

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

環(huán)境變量列表

雖然我們一般雖然配置的環(huán)境變量就那么幾個(gè),但其實(shí)Go語(yǔ)言是提供了非常多的環(huán)境變量,讓我們可以自由地定制開(kāi)發(fā)和編譯器行為。

下面是Go提供的所有的環(huán)境變量列表,一般可以劃分為下面幾大類(lèi),大概了解一下就可以了,因?yàn)橛行┉h(huán)境變量我們可以永遠(yuǎn)都不會(huì)用到。

通過(guò)環(huán)境變量

GCCGO

GOARCH

GOBIN

GOCACHE

GOFLAGS

GOOS

GOPATH

GOPROXY

GORACE

GOROOT

GOTMPDIR

和cgo一起使用的環(huán)境變量

CC

CGO_ENABLED

CGO_CFLAGS

CGO_CFLAGS_ALLOW

CGO_CFLAGS_DISALLOW

CGO_CPPFLAGS, CGO_CPPFLAGS_ALLOW, CGO_CPPFLAGS_DISALLOW

CGO_CXXFLAGS, CGO_CXXFLAGS_ALLOW, CGO_CXXFLAGS_DISALLOW

CGO_FFLAGS, CGO_FFLAGS_ALLOW, CGO_FFLAGS_DISALLOW

CGO_LDFLAGS, CGO_LDFLAGS_ALLOW, CGO_LDFLAGS_DISALLOW

CXX

PKG_CONFIG

AR

與系統(tǒng)架構(gòu)體系相關(guān)的環(huán)境變量

GOARM

GO386

GOMIPS

GOMIPS64

專(zhuān)用的環(huán)境變量

GCCGOTOOLDIR

GOROOT_FINAL

GO_EXTLINK_ENABLED

GIT_ALLOW_PROTOCOL

其他環(huán)境變量

GOEXE

GOHOSTARCH

GOHOSTOS

GOMOD

GOTOOLDIR

小結(jié)

環(huán)境變量的設(shè)置,可以影響我們開(kāi)發(fā)和編譯項(xiàng)目的過(guò)程與結(jié)果,所以還是很有必要了解一下的。

更多關(guān)于Golang常用環(huán)境變量說(shuō)明與設(shè)置請(qǐng)查看下面的相關(guān)鏈接

您可能感興趣的文章:
  • Golang實(shí)現(xiàn)web文件共享服務(wù)的示例代碼
  • 解決golang 關(guān)于全局變量的坑
  • 淺談golang并發(fā)操作變量安全的問(wèn)題
  • Golang 變量申明的三種方式
  • Golang中的變量學(xué)習(xí)小結(jié)
  • 詳解Golang編程中的常量與變量
  • Golang開(kāi)發(fā)中如何解決共享變量問(wèn)題

標(biāo)簽:阿克蘇 貴陽(yáng) 德州 慶陽(yáng) 廣西 調(diào)研邀請(qǐng) 西雙版納 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解》,本文關(guān)鍵詞  Golang,常用,環(huán)境,變量,說(shuō)明,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 长寿区| 外汇| 永清县| 新巴尔虎右旗| 阿坝| 舟山市| 南宫市| 沈丘县| 绥德县| 余庆县| 文化| 衡水市| 石泉县| 南通市| 容城县| 宁陵县| 拉萨市| 昆明市| 宜兰市| 房山区| 镇坪县| 贵德县| 镇原县| 江津市| 乌审旗| 富裕县| 绥德县| 北安市| 惠来县| 上思县| 康保县| 三穗县| 宁武县| 许昌市| 蒲城县| 藁城市| 墨竹工卡县| 黄浦区| 通化县| 武乡县| 华阴市|