在ARM平台上編譯安裝golang

2021-06-28 07:40:07 字數 2684 閱讀 1855

注:本文選用樹莓派做測試,因為樹莓派是基於arm平台的。

據說下個版本的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命令驗證是否成功安裝。

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

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

2.2.2 轉殖遠端golang的git倉庫到本地

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

git clone

git clone

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

git checkout go1.4.1

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

主要有goroot、goos、goarch、goarm四個環境變數需要設定,先解釋四個環境變數的意義。

主要代表golang樹結構目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設定這個環境變數,因為編譯的時候缺省會以go目錄下src子目錄中的all.bash指令碼執行時的父目錄作為goroot的值。為了保險起見,可以直接設定為go目錄的路徑。

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

goos

goarch

darwin

386darwin

amd64

dragonfly

386dragonfly

amd64

freebsd

386freebsd

amd64

freebsd

armlinux

386linux

amd64

linux

armnetbsd

386netbsd

amd64

netbsd

armopenbsd

386openbsd

amd64

plan9

386plan9

amd64

solaris

amd64

windows

386windows

amd64

需要注意的是這兩個值代表的是目標系統和平台,而不是編譯源**的系統和平台。樹莓派的raspbian是linux系統,所以這些goos設定為linux,goarch設定為arm。

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

export goroot=你的go目錄路徑

export goos=linux

export goarch=arm

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

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

編譯完成後,go目錄下會生成bin目錄,裡面就是go的執行指令碼。為了以後使用方法,可以將這個bin路徑新增到path環境變數中。同樣編輯~/.bashrc檔案,因為前面設定過goroot環境變數指向go目錄了,所以只需要在末尾加上

export path=$path:$goroot/bin

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

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

另外還有乙個比較重要的gopath環境變數需要設定,等有時間再講講吧。

參考官方文件:

Linux平台上離線編譯安裝OpenCV

opencv是做視覺的標配,由於工作電腦不能連網,因此只能離線安裝。整個過程還比較順利,寫下整個過程,方便以後檢視。1.安裝cmake工具 解壓 tar zxvf cmake 3.10.0 rc4 linux x86 64.tar.gz 然後新增到使用者的環境變數下 vim bashrc,按下鍵盤的...

qt 5 12 10在Arm平台的編譯

作業系統 麒麟銀河v10 uos經驗證也可以 cpu 平台 arm 安裝依賴 sudo apt install flex bison gperf sudo apt get install build essential libgl1 mesa dev libglu1 mesa dev libegl1...

在ARM Linux平台上移植SQLite

在arm linux平台上移植sqlite 首先從http sqlite.org 的quick start文件中的測試程式為例對移植到arm linux上的sqlite3進行測試。該程式清單如下 include include static int callback void notused,int...