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

Go下載安裝

官方Go下載站點:https://golang.google.cn/ 也能夠選擇:https://studygolang.com/dlhtml

配置環境變量

經常使用環境變量

  • GOROOT

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 GOROOTgolang

  • GOPATH

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

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

GOPATH能夠設置多個工做區,不過當咱們使用go get命令去獲取遠程庫的時候,通常會安裝到第一個工做區當中。架構

每一個工做區使用分號,分割便可。編輯器

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

<font color=#FF0000 >例如 :</font> 工做區在D:\GoPath,須要在系統變量中添加GOPATH,值爲D:\GoPath GOPATH工具

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

當咱們使用go install命令編譯和打包應用程序時,該命令會將編譯後的二進制程序打包GOBIN目錄,通常咱們將GOBIN設置爲GOPATH/bin。開發工具

<font color=#FF0000 >例如 :</font> 在系統變量中找到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

相關文章
相關標籤/搜索