交叉編譯 ARM

2021-10-09 00:08:41 字數 1986 閱讀 4918

交叉編譯:是在乙個平台上生成另乙個平台上的可執行**編譯

例:c51的交叉編譯發生在keil(整合環境上面)

linux上面編寫樹莓派的**,並編譯成可執行的**,如***.out,在樹莓派上執行

目的平台上不允許或不能夠安裝我們所需要的編譯器:

1、目的平台上的資源貧乏,無法執行我們所需要編譯器

2、目的平台還沒有建立,連作業系統都沒有,根本談不上執行什麼編譯器平台

執行至少需要兩樣東西:bootloader(啟動引導**)以及作業系統核心

宿主機(host) :編輯和編譯程式的平台,一般是基於x86的pc機,通常也被稱為主機。

目標機(target):使用者開發的系統,通常都是非x86平台。host編譯得到的可執行**在target上執行。

交叉編譯需要用到工具:交叉編譯器、交叉編譯工具鏈

臨時有效

修改path環境變數,開啟另乙個終端將無法使用

export path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/admin_/learn/lessonpi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
方法二:永久有效

1.修改工作目錄下的.bashrc隱藏檔案,配置命令終端vi /home/admin_/.bash

2.在該指令碼下,加入上述環境變數並儲存

export path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/admin_/learn/lessonpi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
3.然後,source /home/admin_/.bash載入配置檔案,馬上生效指令

2.檢視檔案資訊

file 檔名,可以看到下圖中上面的檔案適用x86架構的機器,下面的檔案適合arm架構的機器

3.傳輸檔案

將linux的檔案傳輸到樹莓派機器:

scp test [email protected]:/home/test
一、交叉編譯在樹莓派上執行hello world

1、編輯好hello world**

2、使用gcc編譯

3、檢視test_1檔案型別為x86-64位型號的系統

4、使用arm-linux-gnueabihf-gcc test.c -o test_2編譯arm架構的

5、檢視test_2型別

6、執行檔案

7、將交叉編譯好的test_2拷貝到樹莓派上

檢視樹莓派端,並成功執行hello world

二、曾經ftp專案

arm交叉編譯Valgrind

1.wget 把檔案考到板子上,並同步板子的時間到現在。tar xvf valgrind 3.11.0.tar.bz2 cd valgrind 3.11.0 3.configure make make install 注意 prefix opt valgrind指定的目錄要與開發板上放置的目錄一致,...

openssl交叉編譯arm

1 交叉編譯arm環境的openssl 修改config檔案 因為晶元架構為armv7,所以新增 guessos armv7 generic linux2 對應位置 除了修改config檔案也可以在.config的時候新增 march armv7 a 引數 2 使用過程中遇到的問題 我使用的虛擬機器...

boost交叉編譯(arm)

解壓 tar zxvf boost 1 73 0.tar.gz檢視可選庫 cd boost 1 73 0 bootstrap.sh show libraries編譯 bootstrap.sh with libraries filesystem,thread with toolset gcc使用 wi...