Go下載安裝
官方Go下載站點:https://golang.google.cn/
也可以選擇:https://studygolang.com/dl
配置環境變量
常用環境變量
- GOROOT
GOROOT
是Go的安裝目錄,在Windows中,GOROOT的默認位置是C:/go
,而在Mac OS或者Linux中GOROOT的默認位置是/usr/local/go
,如果Go安裝在其他目錄,而需要將GOROOT的位置修改為對應的目錄。
另外,GOROOT/bin
下包含Go為我們提供的工具鏈,因此應該將GOROOT/bin
配置到環境變量PATH中,方便我們在全局中使用Go的工具鏈。
例如 : 現在Go的安裝目錄在D:\WindowsSoftware\Golang,需要在系統變量中添加GOROOT
,值為D:\WindowsSoftware\Golang
- GOPATH
GOPATH
是Go語言的工作目錄。
go install/go get和 go的工具等會用到GOPATH環境變量。
GOPATH是作為編譯后二進制的存放目的地和import包時的搜索路徑。
GOPATH主要包含三個目錄: bin
、pkg
、src
- bin:主要存放可執行文件。
- pkg:存放編譯好的庫文件, 主要是*.a文件。
- src:下主要存放go的源文件。
此外還需要注意的是不要講GOROOT設置城Go語言的路徑,避免出現不必要的沖突。
GOPATH可以設置多個工作區,不過當我們使用go get命令去獲取遠程庫的時候,一般會安裝到第一個工作區當中。
每個工作區使用分號,分割即可。
export GOPATH=/opt/go;$home/go
例如 : 工作區在D:\GoPath,需要在系統變量中添加GOPATH
,值為D:\GoPath
- GOBIN
GOBIN是我們在開發程序編譯后二進制命令的安裝目錄。
當我們使用go install命令編譯和打包應用程序時,該命令會將編譯后的二進制程序打包GOBIN目錄,一般我們將GOBIN設置為GOPATH/bin。
例如 : 在系統變量中找到path
,添加值%GOROOT%\bin
和%GOPATH%\bin
- 檢測配置是否成功
打開CMD,輸入go env
不常用環境變量
- GOOS與GOARCH
GOOS與GOARCH是當需要進行跨平台編譯的時候,需要設置的環境變量,這種編譯方式叫做交叉編譯。
所謂的交叉編譯,是指在一個平台上就生成可以在另外一個平台上運行的代碼,例如我們可以在32位的Windows操作系統上開發,然后生成可以在64位的Linux操作系統上運行的二進制進程。
GOOS:它的默認值是我們當前的操作系統,例如Windows、Linux,但是需要注意的是Mac OS的對應值是darwin。
GOARCH:表示CPU的架構,如386,amd64,arm等。
可以通過go env來獲取當前GOOS與GOARCH的值。
$ go env GOOS GOARCH
darwin
amd64
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操作系統上運行的目標程序
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
編譯arm架構Android操作上的目標程序
$ CGO_ENABLED=0 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
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
目錄結構
- 目前流行的項目結構
├── bin # 存放編譯后的二進制文件
├── pkg # 存放編譯后的庫文件
└── src # 存放源碼文件
└── code.fdevops.com # 使用網站域名區分項目
└── lanyulei # 作者/部門/機構...
└── demo1 # 項目
└── main.go
推薦編輯器
Go采用的是UTF-8編碼的文本文件存放代碼的,理論上使用任何一款文件編輯器都可以做Go語言開發,這里主要推薦兩個開發工具。
- VS Code
Visual Studio Code(簡稱VS Code)是一個由微軟開發的,同時支持Windows、Linux、和macOS系統且開放源代碼的代碼編輯器,它支持測試,並內置了Git 版本控制功能,同時也具有開發環境功能,例如代碼補全(類似於 IntelliSense)、代碼片段、和代碼重構等,該編輯器支持用戶個性化配置,例如改變主題顏色、鍵盤快捷方式等各種屬性和參數,還在編輯器中內置了擴展程序管理的功能。
雖然不如一些IDE功能強大,但是它添加Go擴展插件后已經足夠勝任我們日常的Go開發工作了,而且它占用資源較少,所以就算配置較低的電腦也可以使用。
- Goland
喜歡用IDE做開發的同學必定不能錯過Jetbrains家族的IDE,款款精品,可謂都是IDE中的神兵利器。
下面介紹的就是Jetbrains家族中開發Go語言的Goland。
Goland是付費的,當然網上也會有一些激活碼可以直接激活使用,但是個人認為,如果條件允許的話,希望購買正版,若是不願意付費的話,建議使用VS Code也可滿足正常開發需求。
編寫第一個Go程序
- hello.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello Go!")
}
- 編譯
go build hello.go
go build
命令可以將Go語言程序代碼編譯成二進制的可執行文件,但是需要我們手動運行該二進制文件.
go run hello.go
go run
命令則更加方便,它會在編譯后直接運行Go語言程序,編譯過程中會產生一個臨時文件,但不會生成可執行文件,這個特點很適合用來調試程序。
- 運行
./hello
參考:
https://blog.51cto.com/11293981/2417803
http://c.biancheng.net/view/6046.html