制定交叉编译工具_配置交叉编译工具链-嵌入式Linux
注意:使用我們提供的Ubuntu映象文件時(shí),請按照我們的目錄結(jié)構(gòu),手動設(shè)置交叉編譯工具鏈以及編譯的架構(gòu)環(huán)境變量配置,(建議配置為永久生效),這里我們提供了兩種交叉編譯工具鏈,分別是buildroot構(gòu)建生成的8.4以及yocto生成的9.3工具鏈,開發(fā)板系統(tǒng)默認(rèn)安裝的系統(tǒng)使用的是通過yocto編譯構(gòu)建,所以如果只想針對于文件系統(tǒng)應(yīng)用做開發(fā)或者編譯內(nèi)核uboot等操作,建議只使用yocto的交叉編譯工具鏈。
1.設(shè)置 yocto 交叉編譯工具鏈(不推薦)
交叉編譯工具鏈用來在Ubuntu主機(jī)上編譯應(yīng)用程序,而這些應(yīng)用程序是在ARM等其他平臺上運(yùn)行。
設(shè)置交叉編譯工具主要是設(shè)置PATH, ARCH和CROSS_COMPILE三個(gè)環(huán)境變量,下面介紹具體設(shè)置方法。
在本文檔中,源碼、交叉編譯工具鏈都是存放于/home/book目錄下;如果你的目錄不一樣,請自行修改本節(jié)所講述的命令。
設(shè)置這3個(gè)環(huán)境變量有多種方法,任意選擇其中一種方法即可。錄制視頻時(shí)我會使用多種開發(fā)板,所以在視頻里我總是使用“臨時(shí)生效”的方法。
1.1 臨時(shí)生效
也可以手工執(zhí)行“export”命令設(shè)置環(huán)境變量,該設(shè)置只對當(dāng)前終端有效(另開一個(gè)終端需要再次設(shè)置)。100ASK_STM32MP157_PRO全功能版
示例如下,第1條命令很長,這里使用 \ 用來換行,復(fù)制的時(shí)候需要一并復(fù)制,注意 \ 前面沒有空格:
book@100ask:~$ source /home/book/100ask_stm32mp157_pro-sdk/ToolChain/\
openstlinux_eglfs-linux-gnueabi/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-ostl-linux-gnueabi-
1.2 手動指定
先設(shè)置PATH環(huán)境變量,然后在make編譯時(shí)指定ARCH架構(gòu) CROSS_COMPILE交叉編譯工具鏈(執(zhí)行make命令時(shí)指定的參數(shù),只對當(dāng)前命令有效;下次執(zhí)行make時(shí)仍需要再次指定那些參數(shù))。100ASK_STM32MP157_PRO全功能版
示例如下,第1條命令很長,這里使用 \ 用來換行,復(fù)制的時(shí)候需要一并復(fù)制,注意 \ 前面沒有空格:
book@100ask:~$ source /home/book/100ask_stm32mp157_pro-sdk/ToolChain/\
openstlinux_eglfs-linux-gnueabi/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-ostl-linux-gnueabi-
2.測試交叉編譯工具鏈
2.1 測試環(huán)境變量:
book@100ask:~$ echo $ARCH
arm
book@100ask:~$ echo $CROSS_COMPILE
arm-ostl-linux-gnueabi-
2.2 測試交叉編譯器:
執(zhí)行以下命令,結(jié)果見后圖:
book@100ask:~$ arm-ostl-linux-gnueabi-gcc –v
3.設(shè)置 buildroot 交叉編譯工具鏈(默認(rèn)使用)
交叉編譯工具鏈用來在Ubuntu主機(jī)上編譯應(yīng)用程序,而這些應(yīng)用程序是在ARM等其他平臺上運(yùn)行。
設(shè)置交叉編譯工具主要是設(shè)置PATH, ARCH和CROSS_COMPILE三個(gè)環(huán)境變量,下面介紹具體設(shè)置方法。
在本文檔中,源碼、交叉編譯工具鏈都是存放于/home/book目錄下;如果你的目錄不一樣,請自行修改本節(jié)所講述的命令。
設(shè)置這3個(gè)環(huán)境變量有多種方法,任意選擇其中一種方法即可,建議使用“永久生效”的方法。錄制視頻時(shí)我會使用多種開發(fā)板,所以在視頻里我總是使用“臨時(shí)生效”的方法。
3.1 永久生效
如需永久修改,請修改用戶配置文件。
注意:如果不會使用vim命令,可以使用圖形化的編輯工具,執(zhí)行:gedit ~/.bashrc
book@100ask:~$ vim ~/.bashrc100ASK_STM32MP157_PRO全功能版
在行尾添加或修改,加上下面幾行(第3行很長,這里使用小字體方便大家復(fù)制):
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linuxgnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_stm32mp157_pro-sdk/ToolChain/\
arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
設(shè)置完畢后,要執(zhí)行 source ~/.bashrc 命令使其生效,這條命令是加載這些設(shè)置的環(huán)境變量。
3.2 臨時(shí)生效
也可以手工執(zhí)行“export”命令設(shè)置環(huán)境變量,該設(shè)置只對當(dāng)前終端有效(另開一個(gè)終端需要再次設(shè)置)。100ASK_STM32MP157_PRO全功能版
執(zhí)行以下3個(gè)命令,第3個(gè)命令很長,這里使用 \ 用來換行,復(fù)制的時(shí)候需要一并復(fù)制,注意 \ 前面沒有空格:
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_stm32mp157_pro-sdk/ToolChain/\
arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
3.3 手動指定
先設(shè)置PATH環(huán)境變量,然后在make編譯時(shí)指定ARCH架構(gòu) CROSS_COMPILE交叉編譯工具鏈(執(zhí)行make命令時(shí)指定的參數(shù),只對當(dāng)前命令有效;下次執(zhí)行make時(shí)仍需要再次指定那些參數(shù))。100ASK_STM32MP157_PRO全功能版
示例如下,第1條命令很長,這里使用 \ 用來換行,復(fù)制的時(shí)候需要一并復(fù)制,注意 \ 前面沒有空格:
book@100ask:~$ export PATH=$PATH:/home/book/100ask_stm32mp157_pro-sdk/ToolChain/\
arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
4.測試交叉編譯工具鏈
4.1 測試環(huán)境變量:
book@100ask:~$ echo $ARCH
arm
book@100ask:~$ echo $CROSS_COMPILE
arm-buildroot-linux-gnueabihf-
4.2 測試交叉編譯器:
執(zhí)行以下命令,結(jié)果見后圖:
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc –v
技術(shù)交流群(鴻蒙開發(fā)/Linux/嵌入式/驅(qū)動/資料下載)
QQ群:869222007
單片機(jī)-嵌入式Linux交流群:
QQ群:536785813
百問科技公眾號
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的制定交叉编译工具_配置交叉编译工具链-嵌入式Linux的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消防设施有哪些(常见消防设施5种)
- 下一篇: linux 其他常用命令