一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Golang - Golang常用環境變量說明與設置詳解

Golang常用環境變量說明與設置詳解

2020-06-05 14:07weixin_33895695 Golang

這篇文章主要介紹了Golang常用環境變量說明與設置,需要的朋友可以參考下

無論你是使用Windows,Linux還是Mac OS操作系統來開發Go應用程序,在安裝好Go安裝語言開發工具之后,都必須配置好Go語言開發所要求的 環境變量,才算初步完成Go開發環境的搭建。

但對于一些初學者來說,可能不太明白Go語言中常用的環境變量(Environment variables)的作用以及如何設置環境變量,今天我們來講講。

注意:Go提供的Windows操作系統安裝包(.msi后綴)安裝完成后,會自動配置幾個常用的環境變量。

常用環境變量

 

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

?
1
2
$ 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演示

?
1
2
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演示

?
1
export GOPATH=/opt/go

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

?
1
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演示

?
1
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的值。

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

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

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

?
1
$ 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常用環境變量說明與設置請查看下面的相關鏈接

原文鏈接:https://blog.csdn.net/weixin_33895695/article/details/91394480

延伸 · 閱讀

精彩推薦
  • Golanggolang的httpserver優雅重啟方法詳解

    golang的httpserver優雅重啟方法詳解

    這篇文章主要給大家介紹了關于golang的httpserver優雅重啟的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    helight2992020-05-14
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • GolangGolang通脈之數據類型詳情

    Golang通脈之數據類型詳情

    這篇文章主要介紹了Golang通脈之數據類型,在編程語言中標識符就是定義的具有某種意義的詞,比如變量名、常量名、函數名等等,Go語言中標識符允許由...

    4272021-11-24
  • GolangGolang中Bit數組的實現方式

    Golang中Bit數組的實現方式

    這篇文章主要介紹了Golang中Bit數組的實現方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
  • Golanggolang如何使用struct的tag屬性的詳細介紹

    golang如何使用struct的tag屬性的詳細介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細介紹,從例子說起,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網11352020-05-21
  • Golanggolang json.Marshal 特殊html字符被轉義的解決方法

    golang json.Marshal 特殊html字符被轉義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • Golanggo日志系統logrus顯示文件和行號的操作

    go日志系統logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
主站蜘蛛池模板: 亚洲日日操 | 国自产拍在线天天更新91 | 成人操| 黑人与老女人做受 | 日产精品一卡2卡三卡4乱码久久 | 添逼逼视频 | 欧美日韩在线观看精品 | 国产人va在线 | 亚洲精品久久麻豆蜜桃 | 国产精品女主播自在线拍 | 97视频久久久| 国产91视频网 | 国产亚洲精品一区久久 | 99精彩视频在线观看 | 五月天淫 | 欧美另类videos另类粗暴 | 好男人资源免费播放在线观看 | 亚洲图片 自拍偷拍 | 日韩欧美一区二区三区免费观看 | 欧美成人免费草草影院视频 | 国精视频一区二区视频 | 久九九精品免费视频 | 教室里的激情电影 | 午夜一区二区福利视频在线 | 小伙无套内射老女人 | juliaann厨房大战 | 成年私人影院免费视频网站 | 2021福利视频 | 继攵催眠女乱h调教 | 国产在亚洲线视频观看 | 国产愉拍 | 国产四虎 | 色琪琪久久se色 | 3d欧美人与禽交 | 王淑兰与铁柱全文免费阅读 | 日本老妇乱子伦中文视频 | 国产一区二区三区在线 | 古装床戏做爰无遮挡三级 | 99这里只有精品视频 | 免费黄色网站视频 | 免费视频一区二区 |