Go 安裝介紹

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 //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=//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=//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
Tags: