加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 什么是交叉編譯
    • 交叉編譯鏈安裝
    • 交叉編譯鏈使用
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)環(huán)境搭建之交叉編譯

09/29 09:31
1020
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

什么是交叉編譯

交叉編譯是指在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。由于不同的體系結(jié)構(gòu)有不同的指令系統(tǒng)。因此,不同的cpu需要有相應(yīng)的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同的cpu的對應(yīng)的可執(zhí)行的二進制文件。

交叉編譯鏈安裝

建立交叉編譯環(huán)境又可分為安裝SDK(其中包含了交叉編譯工具鏈)和設(shè)置交叉編譯環(huán)境變量。

SDK路徑:EF1開發(fā)板資料包/06-常用工具/06-1 編譯工具安裝腳本/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh

將上述資料拷貝到ubuntu系統(tǒng)的/home/elf目錄下。

并在該目錄下執(zhí)行:

elf@ubuntu:~$?sudo?./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh

命令行會提示:Enter target directory for SDK (default: /opt/fsl-imx-x11/4.1.15-2.0.0)

連續(xù)兩次按下回車鍵,程序?qū)詣影惭b交叉編譯工具鏈(交叉編譯工具鏈安裝一次即可,更換終端或重啟系統(tǒng)不必重新安裝)。安裝過程中一定要保證網(wǎng)絡(luò)暢通,Ubuntu系統(tǒng)可以訪問外網(wǎng)。

等待SDK安裝,如下圖通過打印信息可以看出安裝成功。

交叉編譯鏈使用

設(shè)置環(huán)境變量

注意:

  • 設(shè)置環(huán)境變量之后,只要不更換終端,下次再編譯就不需要重新設(shè)置。
  • 如果重新打開新終端或者切換賬戶,編譯前需要重新設(shè)置環(huán)境變量。

設(shè)置編譯環(huán)境主要是指定目標架構(gòu)和交叉編譯工具鏈,以及編譯過程中使用到的一些庫的路徑等,使用如下命令配置(.后邊有空格):

. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

然后使用命令arm-poky-linux-gnueabi-gcc -v判斷是否設(shè)置成功(注:-v前邊有空格)。正常情況下會打印出gcc的版本信息:gcc version 5.3.0 (GCC),

編譯helloworld

在講“GCC編譯器”章節(jié),使用ubuntu的GCC編譯器編譯生成了hello_ubuntu程序,在此章節(jié),將使用安裝的開發(fā)板的交叉編譯器編譯同一個hello.c文件,生成hello_board程序,使用file文件可以看出兩個交叉編譯器的不同。

注意:執(zhí)行環(huán)境變量后,交叉編譯工具重命名為CC,在編譯程序時需要用$CC。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜