編譯安裝 go lang 1 9 2

2021-08-14 13:03:49 字數 1471 閱讀 6607

最近要用 go 做開發,得先給自己的開發機安裝這個 go-lang,選擇了從源**編譯安裝。

1) 指令碼如本

2)但執行到 ./make.bash 時出了如下問題,cannot find /usr/bin/go !!!

當然找不到啦,不是正在安裝go嘛。

3)除錯,看一下 ./make.bash 指令碼中是哪行命令出錯了

再次編譯,輸出如下

4) 開啟 make.bash 看到 124行, 代入 goroot_bootstrap 變數後,的命令就是  [ ! -x /usr/bin/go ]

oops,這個路徑下沒有go,v_v 不是正在安裝 go 嘛。

5) 為什麼正在編譯go卻需要go呢?

這就要去理解 bootstrap 這個單詞了,它是【自舉】的意思,對於作業系統來說就是能夠自己啟動自己,對於程式語言來說

就是能夠自己編譯自己。

不要奇怪,最早的c編譯器是用組合語言寫的,c彙編編譯器能夠編譯出來c語言程式後,才有了用c語言寫c編譯器的可能,也就是說c語言可以自舉了。

同樣go語言的發展歷程也是一樣,首個go語言編譯器是用c寫的,這樣編譯出來go程式後就可以用go語言寫go自己的編譯器了。

到了go1.4版本還是可以用c編譯和安裝,1.4之後的版本就要用go來編譯安裝了(雖然到1.9版本為止還同時提供c編譯安裝的方式)。

明白了 bootstrap 是怎麼回事,那就安裝了乙個臨時的別人預編譯好的go吧,

把 goroot_bootstrap變數賦值為 /root/go,好了,可以開始愉快的編譯了。編譯完後就可以把 /root/go 目錄下的

預編譯版本go刪除啦。

golang 1 9 2 手工安裝

2 解壓安裝 使用tar命令將安裝包解壓到 usr local目錄下 tar xzf go1.9.2.linux amd64.tar.gz c usr local 注意 root 許可權問題 驗證安裝結果,執行以下命令 usr local go bin go version go version g...

ubuntu 14 10 編譯安裝 Golang

以ubuntu wiki的 安裝教程 為例 sudo apt get install bison gawk gcc libc6 dev make sudo apt get install mercurial hg clone r release go解壓後進入目錄,編譯golang cd go sr...

golang安裝 編譯器選擇

1安裝vscode golang 配置 go env w goproxy set environment variable allow bypassing the proxy for selected modules go env w goprivate corp.example.com go en...