Go 安裝介紹

雲崖先生發表於2020-09-28

Go介紹

   Go語言被譽為21世紀的C語言,由Google公司開發,天生對高併發有著優秀的支援。並且語法極度簡潔,關鍵字僅有25個。

   所以使用Go語言時你不用擔心自己寫的和大神寫的有著天差地別,Go語言開發者所書寫的程式碼大家基本都是能看得懂的。

   值得一提的是Go的跨平臺性,Go語言跨平臺性強到令人髮指,你甚至可以再windows下進行開發然後編譯出linux下的二進位制檔案進行部署。

Go安裝

   以下是Go語言的官網,點選下載進行安裝即可。

   image-20200928182520348

Windows

   windows平臺下的安裝十分簡單。當我們下載完安裝程式後,雙擊開啟進行安裝即可。

   image-20200928182629156

   image-20200928182639468

   image-20200928182704742

   image-20200928182717629

   image-20200928182826320

Linux

   如果你習慣了在Linux下進行編碼,則可以安裝LinuxGolang

   當然,基於Golang的跨平臺特性,你在window下進行安裝和書寫程式碼後編譯為Linux下的可執行檔案也可。

   選擇你的Go版本,進行安裝。

wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz

   將下載好的檔案解壓到/usr/local目錄下(建議使用root使用者解壓):

tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local  # 解壓

   最後配置一下環境變數,: Linux下有兩個檔案可以配置環境變數,其中/etc/profile是對所有使用者生效的;$HOME/.profile是對當前使用者生效的,根據自己的情況自行選擇一個檔案開啟,新增如下兩行程式碼,儲存退出。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

   修改/etc/profile後要重啟生效,修改$HOME/.profile後使用source命令載入$HOME/.profile檔案即可生效。 檢查:

~ go version
go version go1.14.1 linux/amd64

版本檢查

   當安裝完Go後,開啟終端輸入go version命令即可檢查是否安裝成功。

   image-20200928183308867

目錄結構

   我們在windows下開啟剛剛安裝好的Go,可檢視到如下的目錄結構:

目錄名描述
api 每個版本的 api 變更差異
bin go 原始碼包編譯出的編譯器(go)、文件工具(godoc)、格式化工具(gofmt)
doc 英文版的 Go 文件
lib 引用的一些庫檔案
misc 雜項用途的檔案,例如 Android 平臺的編譯、git 的提交鉤子等
pkg Windows 平臺編譯好的中間檔案
src 標準庫的原始碼
test 測試用例

環境變數

GOROOT

   GOROOT為安裝Go開發包的路徑。

GOPATH

   GOPATH的路徑需要我們自己在環境變數中進行配置,然後才可以使用Go語言進行開發。

   預設的在使用者變數中,有一個GOPATH,我們可以將他修改為系統變數或者修改其中的值。

   修改任意值即可。

   image-20200928183746598

   image-20200928184018567

   在設定完環境變數後,使用go env可進行測試檢視。

C:\Users\雲崖先生>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\雲崖先生\AppData\Local\go-build
set GOENV=C:\Users\雲崖先生\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\GoLeran\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\GoLeran
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ 雲崖先生\AppData\Local\Temp\go-build516282802=/tmp/go-build -gno-record-gcc-switches

工程目錄

   當配置完GOPATH的環境變數後,我們還需要建立一些資料夾。

   那麼對於個人開發者和工程開發來說,都具有一個不同的目錄結構。

個人開發

   在GOPATH中,我們編寫的GO原始碼都應該存放於src資料夾下。

   注意:預設的GOPATH下的bin目錄也會新增至環境變數中。

   image-20200928184659438

工程開發

   在工程開發中,推薦使用個人的Github域名來進行資料夾的命名。

   因為在Go語言中,是按照包來進行管理的,所以為了防止不同包的專案名衝突,就可以按照這種結構來組織目錄。

   image-20200928184805506

編譯執行

VScode工具包

   這裡建立出了一個Go檔案,並書寫我們的第一個Go程式。

   在書寫Go程式時,我們可以安裝一些Go的工具包(需要先安裝git)。

   首先需要設定GOPROXY,開啟終端設定如下:

go env -w GOPROXY=https://goproxy.cn,direct

   開啟vscodeWindows平臺按下Ctrl+Shift+PMac平臺按Command+Shift+P,這個時候vscode介面會彈出一個輸入框,在其中輸入如下命令:

Go:install/Update Tools

   然後全選,開始安裝工具包。

   image-20200928193252220

   image-20200928193410164

Go編寫

   接下來編寫我們的第一個Go程式,命名為hello.go

package main  // 宣告main包,表明這是一個可執行程式

import "fmt" // 匯入內建的fmt包

func main() { // main 程式入口
	fmt.Println("hello,world!!") // 終端列印
}

go build

   go build表示將原始碼編譯成可執行檔案。

   如下,我們將hello.go進行編譯,在終端輸入以下命令:

PS D:\GoLeran\src\yunya.com> go build -o hello.exe  // 將hello.go進行編譯,編譯的檔名為hello.exe
PS D:\GoLeran\src\yunya.com> .\hello.exe // 執行該檔案
hello,world!!

   如果不使用-o,則將以上級目錄名稱作為編譯後的檔名稱。

   當然,你也可以在其他地方使用go build,後面跟上專案路徑。

go install

   go install會自動進行編譯,然後進行執行。

   它會將編譯結果的可執行檔案放在GOPATHbin目錄下。

go run

   go run可以使go的原始碼檔案立即進行執行而不進行編譯。

D:\GoLeran\src\yunya.com>go run hello.go
hello,world!!

跨平臺編譯

   預設我們go build的可執行檔案都是當前作業系統可執行的檔案,如果我想在windows下編譯一個Linux下可執行檔案,那需要怎麼做呢?

   只需要指定目標作業系統的平臺和處理器架構即可,在cmd下輸入以下三條命令:

SET CGO_ENABLED=0  // 禁用CGO 使用了CGO的程式碼是不支援跨平臺編譯的
SET GOOS=linux  // 目標平臺是linux
SET GOARCH=amd64  // 目標處理器架構是amd64

   然後再執行go build命令,得到的就是能夠在Linux平臺執行的可執行檔案了。

   Mac下編譯 LinuxWindows平臺 64位 可執行程式:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

   Linux下編譯MacWindows平臺64位可執行程式:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

   Windows下編譯Mac平臺64位可執行程式:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

相關文章