官方Go下載站點:https://golang.google.cn/ 也能夠選擇:https://studygolang.com/dlhtml
GOROOT
是Go的安裝目錄,在Windows中,GOROOT的默認位置是C:/go
,而在Mac OS或者Linux中GOROOT的默認位置是/usr/local/go
,若是Go安裝在其餘目錄,而須要將GOROOT的位置修改成對應的目錄。linux
另外,GOROOT/bin
下包含Go爲咱們提供的工具鏈,所以應該將GOROOT/bin
配置到環境變量PATH中,方便咱們在全局中使用Go的工具鏈。android
<font color=#FF0000 >例如 :</font> 如今Go的安裝目錄在D:\WindowsSoftware\Golang,須要在系統變量中添加GOROOT
,值爲D:\WindowsSoftware\Golang
golang
GOPATH
是Go語言的工做目錄。 go install/go get和 go的工具等會用到GOPATH環境變量。 GOPATH是做爲編譯後二進制的存放目的地和import包時的搜索路徑。 GOPATH主要包含三個目錄: bin
、pkg
、src
windows
GOPATH能夠設置多個工做區,不過當咱們使用go get命令去獲取遠程庫的時候,通常會安裝到第一個工做區當中。架構
每一個工做區使用分號,分割便可。編輯器
export GOPATH=/opt/go;$home/go
<font color=#FF0000 >例如 :</font> 工做區在D:\GoPath,須要在系統變量中添加GOPATH
,值爲D:\GoPath
工具
當咱們使用go install命令編譯和打包應用程序時,該命令會將編譯後的二進制程序打包GOBIN目錄,通常咱們將GOBIN設置爲GOPATH/bin。開發工具
<font color=#FF0000 >例如 :</font> 在系統變量中找到path
,添加值%GOROOT%\bin
和%GOPATH%\bin
測試
go env
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
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語言開發,這裏主要推薦兩個開發工具。
Visual Studio Code(簡稱VS Code)是一個由微軟開發的,同時支持Windows、Linux、和macOS系統且開放源代碼的代碼編輯器,它支持測試,並內置了Git 版本控制功能,同時也具備開發環境功能,例如代碼補全(相似於 IntelliSense)、代碼片斷、和代碼重構等,該編輯器支持用戶個性化配置,例如改變主題顏色、鍵盤快捷方式等各類屬性和參數,還在編輯器中內置了擴展程序管理的功能。
雖然不如一些IDE功能強大,可是它添加Go擴展插件後已經足夠勝任咱們平常的Go開發工做了,並且它佔用資源較少,因此就算配置較低的電腦也可使用。
喜歡用IDE作開發的同窗一定不能錯過Jetbrains家族的IDE,款款精品,可謂都是IDE中的神兵利器。
下面介紹的就是Jetbrains家族中開發Go語言的Goland。
Goland是付費的,固然網上也會有一些激活碼能夠直接激活使用,可是我的認爲,若是條件容許的話,但願購買正版,如果不肯意付費的話,建議使用VS Code也可知足正常開發需求。
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