亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang中有哪些環境變量

發布時間:2021-05-25 17:58:35 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

Golang中有哪些環境變量?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

常用環境變量

Go語言中可以設置的環境變量有很多,每個環境變量都有其作用,不過很多我們可能都用不到,一般需要了解也是最重要的有以下幾個:

$ go env //打印Go所有默認環境變量
$ go env GOPATH //打印某個環境變量的值

GOROOT

環境變量GOROOT表示Go語言的安裝目錄。

在Windows中,GOROOT的默認值是C:/go,而在Mac OS或Linux中GOROOT的默認值是usr/loca/go,如果將Go安裝在其他目錄中,而需要將GOROOT的值修改為對應的目錄。

另外,GOROOT/bin則包含Go為我們提供的工具鏈,因此,應該將GOROOT/bin配置到環境變量PATH中,方便我們在全局中使用Go工具鏈。

Linux設置GOROOT演示

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

GOPATH

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

環境變量GOPATH用于指定我們的開發工作區(workspace),是存放源代碼、測試文件、庫靜態文件、可執行文件的工作。

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

當然,我們可以通過修改GOPATH來更換工作區,比如將工作設置opt/go方式如下:

Linux設置GOPATH演示

export GOPATH=/opt/go

還有,可以在GOPATH中設置多個工作區,如:

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

GOPATH的子目錄

上面的代碼表示我們指定兩個工作區,不過當我們使用go get命令去獲取遠程庫的時候,一般會安裝到第一個工作區當中。

按照Go開發規范,GOPATH目錄下的每個工作一般分為三個子目錄:src,pkg,bin,所以我們看到的每個工作區是這樣子的:

bin/

    hello                      # 可執行文件

    outyet                     # 可執行文件

src/

    github.com/golang/example/

        .git/                 

    hello/

        hello.go               # 命令行代碼

    outyet/

        main.go                # 命令行代碼

        main_test.go           # 測試代碼

    stringutil/

        reverse.go             # 庫文件

        reverse_test.go        # 庫文件

    golang.org/x/image/

        .git/                  

    bmp/

        reader.go              # 庫文件

        writer.go              # 庫文件

src目錄放的是我們開發的源代碼文件,其下面對應的目錄稱為包,pkg放的是編譯后的庫靜態文件,bin放的是源代碼編譯后臺的可執行文件。

GOBIN

環境變量GOBIN表示我們開發程序編譯后二進制命令的安裝目錄。

當我們使用go install命令編譯和打包應用程序時,該命令會將編譯后二進制程序打包GOBIN目錄,一般我們將GOBIN設置為GOPATH/bin目錄。

Linux設置GOBIN演示

export GOBIN=$GOPATH/bin

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

交叉編譯

什么是交叉編譯?所謂的交叉編譯,是指在一個平臺上就能生成可以在另一個平臺運行的代碼,例如,我們可以32位的Windows操作系統開發環境上,生成可以在64位Linux操作系統上運行的二進制程序。

在其他編程語言中進行交叉編譯可能要借助第三方工具,但在Go語言進行交叉編譯非常簡單,最簡單只需要設置GOOS和GOARCH這兩個環境變量就可以了。

GOOS與GOARCH

GOOS的默認值是我們當前的操作系統, 如果windows,linux,注意mac os操作的上的值是darwin。 GOARCH則表示CPU架構,如386,amd64,arm等。

獲取GOOS和GOARCH的值

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

$ go env GOOS GOARCH

GOOS和GOARCH的取值范圍

GOOS和GOARCH的值成對出現,而且只能是下面列表對應的值。

$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操作系統上運行的目標程序

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

編譯arm架構Android操作上的目標程序

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

環境變量列表

雖然我們一般雖然配置的環境變量就那么幾個,但其實Go語言是提供了非常多的環境變量,讓我們可以自由地定制開發和編譯器行為。

下面是Go提供的所有的環境變量列表,一般可以劃分為下面幾大類,大概了解一下就可以了,因為有些環境變量我們可以永遠都不會用到。

通過環境變量

GCCGO

GOARCH

GOBIN

GOCACHE

GOFLAGS

GOOS

GOPATH

GOPROXY

GORACE

GOROOT

GOTMPDIR

和cgo一起使用的環境變量

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

與系統架構體系相關的環境變量

GOARM

GO386

GOMIPS

GOMIPS64

專用的環境變量

GCCGOTOOLDIR

GOROOT_FINAL

GO_EXTLINK_ENABLED

GIT_ALLOW_PROTOCOL

其他環境變量

GOEXE

GOHOSTARCH

GOHOSTOS

GOMOD

GOTOOLDIR

什么是golang

golang 是Google開發的一種靜態強類型、編譯型、并發型,并具有垃圾回收功能的編程語言,其語法與 C語言相近,但并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能。

關于Golang中有哪些環境變量問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合作市| 章丘市| 广水市| 新和县| 平陆县| 通江县| 双牌县| 弥勒县| 都江堰市| 潮安县| 定南县| 台前县| 罗山县| 德化县| 响水县| 黑河市| 中西区| 噶尔县| 莆田市| 孟州市| 婺源县| 宕昌县| 汶上县| 绥滨县| 阳江市| 临澧县| 宜兰县| 云霄县| 大田县| 鲁甸县| 阿克苏市| 大竹县| 若羌县| 青岛市| 广东省| 三河市| 南皮县| 瓦房店市| 天台县| 兴国县| 开化县|