一、什么是交叉編譯
??????? 我們一般開發程序在自己的電腦上開發,運行的時候將程序燒錄到板子運行。但我們的開發平臺是X86架構,而I.MX6ULL是ARM架構,所以需要一個在 X86 架構的 PC 上運行,可以編譯 ARM 架構代碼的 GCC 編譯器,這個編譯器就叫做交叉編譯器。
二、配置交叉編譯環境
1、下載交叉編譯工具鏈
Linaro Releases
????????上面鏈接進去后根據自己ubuntu環境下載對應的交叉編譯工具鏈,從上往下第5個是32位系統的,第9個是64位系統的。
2、配置環境
????????在 Ubuntu 中創建目錄:/usr/local/arm并將下載好的文件拷貝到該目錄下,隨后進行解壓(筆者的ubuntu是64位的):
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
????????等待解壓完成,解壓完成以后會生成一個名為“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-
gnueabihf”的文件夾,這個文件夾里面就是我們的交叉編譯工具鏈。
??????? 隨后修改環境變量,使用 vim 打開 /etc/profile 文件,在最后面輸入如下所示內容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
????????隨后重啟電腦就OK了。?
3、安裝其他庫
????????在使用交叉編譯器之前還需要安裝一下其它的庫:
sudo apt-get install lsb-core lib32stdc++6
三、使用交叉編譯
????????首先需要使能環境變量:
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
????????輸入命令查看版本號,且代表環境設置成功!
arm-linux-gnueabihf-gcc -v
??????? 隨便找一個 .c文件,和使用gcc一樣:
arm-linux-gnueabihf-gcc -o demo1 demo1.c
??????? 這個demo1可執行文件就可以在ARM架構中運行了。