在ubuntu環境中,進行arm嵌入式開發時,ubuntu自帶的x86gcc編譯器編譯出來的程式不能在arm晶元上執行,我們需要安裝乙個交叉編譯器gcc,是得編譯出來的軟體執行在arm晶元中
sudo mkdir /usr/local/arm
sudo cp gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/
拷貝完成之後,解壓
sudo tar -vxf gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
解壓出來的就是編譯器內容,不需要安裝,只需要將此目錄放在path中去即可,
sudo vi /etc/profile
在最後一行新增
expert path=$path:/usr/local/arm/gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabihf/bin
此處是絕對路徑,按實際新增,因為所以的編譯軟體都在bin目錄下,所以新增最終資料夾就是bin
如果想要測試一下是否能用,需要重啟一下,shell中輸入
reboot
不想重啟的話,也可以在shell中手動的,將上面的命令在輸入一遍:
expert path=$path:/usr/local/arm/gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabihf/bin
在shell中輸入此命令,是在當前shell中有效,關閉shell重新開啟就無效了
最後測試前還需要裝一些gcc交叉編譯器所依賴的庫檔案,(ps:我也不知道為什麼需要裝,但是不裝好像編譯出問題),在shell中輸入:
sudo apt-get install lsb-core lib32stdc++6
等待安裝完成即可
然後就是進行簡單的測試一下
cd ~ #進入home目錄
arm-linux-gnueabihf-gcc -v
就會顯示當前gcc編譯器的版本
也可以編寫乙個.c測試一下
hello.c檔案內容:
#include
intmain
(int argc,
char
*ar**)
else
return0;
}
如果使用ubuntu自帶gcc編譯器,編譯如下:
gcc -o hello hello.c
編譯完成以後,檢視檔案型別:
file hello
hello: elf 64-bit lsb shared object, x86-64, version 1 (sysv)
, 可以看出ubuntu自帶編譯器編譯出來是x86-64型別。
如果使用arm-linux-gnueabihf-gcc交叉編譯器,編譯如下:
arm-linux-gnueabihf-gcc -o hello1 hello.c
編譯完成,檢視檔案型別:
file hello1
hello1: elf 32-bit lsb executable, arm, eabi5 version 1 (sysv)
可以看出是arm型別,這就可以在arm晶元是執行。
至此,交叉編譯器算是安裝完成,可以正常執行了。 交叉編譯器
交叉編譯器可以使我們在主機上編譯出可以在嵌入式裝置上執行的程式 install gcc aarch64 linux gnu 安裝64位用於作業系統的交叉編譯器,gcc版本是5.4,安裝位置在 usr bin sudo apt get install gcc arm linux gnueabihf 安...
ubuntu安裝交叉編譯器 安裝交叉編譯器
2 安裝方法二 1 安裝方法一 開啟ubuntu終端 使用sudo apt list gcc arm 可以檢視所有的交叉編譯器,假設安裝gcc arm linux gnueabihf,則使用sudo apt get install gcc arm linux gnueabihf就裝好了。參考 2 安...
arm linux交叉編譯器
本文出自 http embdev.gotdns.org 版本選者在linux裡面是非常重要的,沒有windows一樣有效的管理,建議選者文中的版本。否則出現錯誤的概率很高,所有的版本區別請參考各位庫的官方主頁。雖然網上有現成的工具,但是,一步步的製作下來可以讓新手理解一下linux各個庫的關係,以及...