Windows下Go安裝&環境配置&編譯運行


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
GOROOT

  • GOPATH

GOPATH是Go語言的工作目錄。
go install/go get和 go的工具等會用到GOPATH環境變量。
GOPATH是作為編譯后二進制的存放目的地和import包時的搜索路徑。
GOPATH主要包含三個目錄: binpkgsrc

  • bin:主要存放可執行文件。
  • pkg:存放編譯好的庫文件, 主要是*.a文件。
  • src:下主要存放go的源文件。
    此外還需要注意的是不要講GOROOT設置城Go語言的路徑,避免出現不必要的沖突。

GOPATH可以設置多個工作區,不過當我們使用go get命令去獲取遠程庫的時候,一般會安裝到第一個工作區當中。

每個工作區使用分號,分割即可。

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

例如 : 工作區在D:\GoPath,需要在系統變量中添加GOPATH,值為D:\GoPath
GOPATH

  • GOBIN
    GOBIN是我們在開發程序編譯后二進制命令的安裝目錄。

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

例如 : 在系統變量中找到path,添加值%GOROOT%\bin%GOPATH%\bin
path

  • 檢測配置是否成功
    打開CMD,輸入go env
    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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM