當前位置:編程學習大全網 - 源碼下載 - 如何編譯arm linux的go

如何編譯arm linux的go

Golang也就是Go語言,現在已經發行到1.4.1版本了,語言特性優越性和背後Google強大靠山什麽的就不多說了。Golang的官方提供了多個平臺上的二進制安裝包,遺憾的是並非沒有發布ARM平臺的二進制安裝包。ARM平臺沒辦法直接從官網下載二進制安裝包來安裝,好在Golang是支持多平臺並且開源的語言,因此可以通過直接在ARM平臺上編譯源代碼來安裝。整個過程主要包括編譯工具配置、獲取Golang源代碼、設置Golang編譯環境變量、編譯、配置Golang行環境變量等步驟。

註:本文選用樹莓派做測試,因為樹莓派是基於ARM平臺的。

1、編譯工具配置

據說下個版本的golang編譯工具要使用golang自己來寫,但目前還是使用C編譯工具的。因此,首先要配置好C編譯工具:

1.1 在Ubuntu或Debian平臺上可以使用sudo apt-get install gcc libc6-dev命令安裝,樹莓派的RaspBian系統是基於Debian修改的,所以可以使用這種方法安裝。

1.2 在RedHat或CentOS 6平臺上可以使用sudo yum install gcc libc-devel命令安裝。

安裝完成後可以輸入 gcc --version命令驗證是否成功安裝。

2、獲取golang源代碼

2.1 直接從官網下載源代碼壓縮包。

golang官網提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:/golang/go1.4.1.src.tar.gz

2.2 使用git工具獲取。

golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個方法,因為以後可以隨時獲取最新的golang源代碼。

2.2.1 首先確認ARM平臺上已經安裝了git工具,可以使用git --version命令確認。壹般linux平臺都安裝了git,沒有的話可以自行安裝,不同平臺的安裝方法可以參考:/download/linux

2.2.2 克隆遠程golang的git倉庫到本地

在終端cd到妳想要安裝golang的目錄,確保該目錄下沒有名為go的目錄。然後以下命令獲取代碼倉庫:

git clone /go

大陸地區可能會獲取失敗,在不翻墻的情況下我試了幾次都沒成功,原因大家都懂的。好在google已經將golang也托管到github上面,所以也可以通過下面命令獲取:

git clone /golang/go.git

視網絡情況,下載可能需要不少時間。我2M的帶寬花了將近兩個小時才下載完,雖然整個項目不過幾十兆= =

下載完成後,可以看到目錄下多了壹個go目錄,裏面即為golang的源代碼,在終端上執行cd go命令進入該目錄。

執行下面命令檢出go1.4.1版本的源代碼,因為現在已經有新的代碼提交上去了,最新的代碼可能不是最穩定的:

git checkout go1.4.1

至此,最新1.4.1發行版的源代碼獲取完畢

3、設置golang的編譯環境變量

主要有GOROOT、GOOS、GOARCH、GOARM四個環境變量需要設置,先解釋四個環境變量的意義。

3.1 GOROOT

主要代表golang樹結構目錄的路徑,也就是上面git檢出的go目錄。壹般可以不用設置這個環境變量,因為編譯的時候默認會以go目錄下src子目錄中的all.bash腳本運行時的父目錄作為GOROOT的值。為了保險起見,可以直接設置為go目錄的路徑。

3.2 GOOS和GOARCH

分別代表編譯的目標系統和平臺,可選值如下:

GOOS GOARCH

darwin 386

darwin amd64

dragonfly 386

dragonfly amd64

freebsd 386

freebsd amd64

freebsd arm

linux 386

linux amd64

linux arm

netbsd 386

netbsd amd64

netbsd arm

openbsd 386

openbsd amd64

plan9 386

plan9 amd64

solaris amd64

windows 386

windows amd64

需要註意的是這兩個值代表的是目標系統和平臺,而不是編譯源代碼的系統和平臺。樹莓派的RaspBian是linux系統,所以這些GOOS設置為linux,GOARCH設置為arm。

3.3 GOARM

表示使用的浮點運算協處理器版本號,只對arm平臺有用,可選值有5,6,7。如果是在目標平臺上編譯源代碼,這個值可以不設置,它會自動判斷需要使用哪壹個版本。

總結下來,在樹莓派上設置golang的編譯環境變量,可編輯$HOME/.bashrc文件,在末尾添加下面內容:

export GOROOT=妳的go目錄路徑

export GOOS=linux

export GOARCH=arm

編輯完後保存,執行source ~/.bashrc命令讓修改生效。

4、編譯源代碼

環境變量配置完成自後就可以開始編譯源代碼。在go目錄下的src子目錄中,主要有all.bash和make.bash兩個腳本(另外還有兩個all.bat和make.bat腳本適用於window平臺)。編譯實際上就是執行其中壹個腳本,兩者的區別在於all.bash在編譯完成後還會執行壹些測試套件。如果希望只編譯不測試,可以運行make.bash腳本。使用cd命令進入go下src目錄,執行./all.bash或者./make.bash命令即可開始編譯。由於硬件情況不同,編譯耗費的時間不同。在我的B型樹莓派編譯過程花費了將近半個小時,編譯完成後執行的測試套件又花費了差不多壹個小時,總***花費了壹個半小時左右。

5、配置golang運行環境變量

編譯完成後,go目錄下會生成bin目錄,裏面就是go的運行腳本。為了以後使用方法,可以將這個bin路徑添加到PATH環境變量中。同樣編輯~/.bashrc文件,因為前面設置過GOROOT環境變量指向go目錄了,所以只需要在末尾加上

export PATH=$PATH:$GOROOT/bin

保存後同樣執行source ~/.bashrc命令讓環境變量生效。

至此,golang源代碼編譯安裝成功。執行go version應該就能看到當前golang的版本信息,表示編譯安裝成功。

  • 上一篇:東方財富軟件的高級選股使用說明在哪裏有啊
  • 下一篇:我想知道CAN總線和RS-485總線的區別。最好是推薦品牌。謝謝大家!
  • copyright 2024編程學習大全網