Go 安裝介紹
Go介紹
Go
語言被譽為21世紀的C
語言,由Google
公司開發,天生對高並發有着優秀的支持。並且語法極度簡潔,關鍵字僅有25個。
所以使用Go
語言時你不用擔心自己寫的和大神寫的有着天差地別,Go
語言開發者所書寫的代碼大家基本都是能看得懂的。
值得一提的是Go
的跨平台性,Go
語言跨平台性強到令人髮指,你甚至可以再windows
下進行開發然後編譯出linux
下的二進制文件進行部署。
Go安裝
以下是Go
語言的官網,點擊下載進行安裝即可。
Windows
windows
平台下的安裝十分簡單。當我們下載完安裝程序後,雙擊打開進行安裝即可。
Linux
如果你習慣了在Linux
下進行編碼,則可以安裝Linux
的Golang
。
當然,基於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
命令即可檢查是否安裝成功。
目錄結構
我們在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
,我們可以將他修改為系統變量或者修改其中的值。
修改任意值即可。
在設置完環境變量後,使用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目錄也會添加至環境變量中。
工程開發
在工程開發中,推薦使用個人的Github
域名來進行文件夾的命名。
因為在Go
語言中,是按照包來進行管理的,所以為了防止不同包的項目名衝突,就可以按照這種結構來組織目錄。
編譯執行
VScode工具包
這裡創建出了一個Go
文件,並書寫我們的第一個Go
程序。
在書寫Go
程序時,我們可以安裝一些Go
的工具包(需要先安裝git
)。
首先需要設置GOPROXY
,打開終端設置如下:
go env -w GOPROXY=//goproxy.cn,direct
打開vscode
,Windows
平台按下Ctrl+Shift+P
,Mac
平台按Command+Shift+P
,這個時候vscode
界面會彈出一個輸入框,在其中輸入如下命令:
Go:install/Update Tools
然後全選,開始安裝工具包。
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
會自動進行編譯,然後進行執行。
它會將編譯結果的可執行文件放在GOPATH
的bin
目錄下。
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
下編譯 Linux
和Windows
平台 64位 可執行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux
下編譯Mac
和Windows
平台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