Ubuntu系統下arm-linux-gcc交叉編譯環境搭建過程
搭建所需環境
Linux版本:Ubuntu 14.10
交叉編譯器版本:arm-linux-gcc-4.4.3資源連結
何為交叉編譯環境
搭建交叉編譯環境,即安裝、配置交叉編譯工具鏈。在Ubuntu環境下編譯出嵌入式Linux系統所需的作業系統、應用程式等,然後再上傳到目標機上。
交叉編譯工具鏈是為了編譯、連結、處理和除錯跨平臺體系結構的程式程式碼。對於交叉開發的工具鏈來說,在檔名稱上加了一個字首,用來區別本地的工具鏈。例如,arm-linux-表示是對arm的交叉編譯工具鏈,arm-linux-gcc表示是使用gcc的編譯器。除了體系結構相關的編譯選項以外,其使用方法與Linux主機上的gcc相同,所以Linux程式設計技術對於嵌入式同樣適用。不過,並不是任何一個版本拿來都能用,各種軟體包往往存在版本匹配問題。例如,編譯核心時需要使用arm-linux-gcc-4.3.3版本的交叉編譯工具鏈,而使用arm-linux-gcc-3.4.1的交叉編譯工具鏈,則會導致編譯失敗。
gcc和arm-linux-gcc的區別就是gcc是linux下的C語言編譯器,編譯出來的程式在本地執行,而arm-linux-gcc用來在linux下跨平臺的C語言編譯器,編譯出來的程式在目標機(如ARM平臺)上執行,嵌入式開發應使用嵌入式交叉編譯工具鏈。
搭建步驟
1.解壓縮
下載arm-linux-gcc-4.4.3.tar.gz壓縮包,並將其放在/usr/local/目錄下,使用解壓縮命令將其解壓縮至該資料夾內:
tar zxvf arm-linux-gcc-4.4.3.tar.gz
現在交叉編譯程式集都在/usr/local/arm-linux-gcc-4.4.3/bin資料夾下。
2.配置環境變數
配置環境變數,把交叉編譯工具鏈的路徑新增到環境變數PATH中去,這樣就可以在任何目錄下使用這些工具。記下上一步中的安裝路徑,使用命令:vi /etc/profile編輯profile檔案,新增環境變數, 在profile中最後一行新增:
export PATH=$PATH:/usr/local/arm-linux-gcc-4.4.3/bin
這個路徑就是那個bin目錄所在的路徑。
編寫完使用wq儲存退出。
3.使環境變數生效並驗證
然後使用命令:
source /etc/profile
使環境變數生效(在不同使用者下最好都執行一下此語句,例如shgao和root使用者下都執行一下)。
檢查是否將路徑加入到PATH:
echo $PATH
顯示的內容中有/usr/local/arm-linux-gcc-4.4.3/bin,說明已經將交叉編譯器的路徑加入PATH。之後可以使用命令:
arm-linux-gcc -v
檢視環境是否搭建成功,如果輸出以下內容,代表已經搭建成功:
編譯生成二進位制檔案
然後可以使用命令:
arm-linux-gcc HZK16.cpp -o arm_HZK16
編譯生成可以在arm上執行的二進位制檔案。
因為生成的arm_HZK16為arm上執行的二進位制檔案,所以在Ubuntu中執行出錯,x86_HZK16是用gcc編譯器生成的可執行檔案,./x86_HZK16執行結果如上。