配置交叉編譯工具鏈 嵌入式Linux

2021-10-10 18:24:02 字數 3799 閱讀 7515

版本

日期作者

說明v1

2020

韋東山摘自《嵌入式linux應用開發完全手冊》

注意:使用我們提供的ubuntu映象檔案時,請按照我們的目錄結構,手動設定交叉編譯工具鏈以及編譯的架構環境變數配置,(建議配置為永久生效),這裡我們提供了兩種交叉編譯工具鏈,分別是buildroot構建生成的8.4以及yocto生成的9.3工具鏈,開發板系統預設安裝的系統使用的是通過yocto編譯構建,所以如果只想針對於檔案系統應用做開發或者編譯核心uboot等操作,建議只使用yocto的交叉編譯工具鏈。

交叉編譯工具鏈用來在ubuntu主機上編譯應用程式,而這些應用程式是在arm等其他平台上執行。

設定交叉編譯工具主要是設定path, arch和cross_compile三個環境變數,下面介紹具體設定方法。

在本文件中,原始碼、交叉編譯工具鏈都是存放於/home/book目錄下;如果你的目錄不一樣,請自行修改本節所講述的命令。

也可以手工執行「export」命令設定環境變數,該設定只對當前終端有效(另開乙個終端需要再次設定)。

100ask_stm32mp157_pro全功能版

示例如下,第1條命令很長,這裡使用 \ 用來換行,複製的時候需要一併複製,注意 \ 前面沒有空格:

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-

先設定path環境變數,然後在make編譯時指定arch架構 cross_compile交叉編譯工具鏈(執行make命令時指定的引數,只對當前命令有效;下次執行make時仍需要再次指定那些引數)。

100ask_stm32mp157_pro全功能版

示例如下,第1條命令很長,這裡使用 \ 用來換行,複製的時候需要一併複製,注意 \ 前面沒有空格:

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-

book@100ask:

~$ echo $arch

armbook@100ask:

~$ echo $cross_compile

arm-ostl-linux-gnueabi-

執行以下命令,結果見後圖:

交叉編譯工具鏈用來在ubuntu主機上編譯應用程式,而這些應用程式是在arm等其他平台上執行。

設定交叉編譯工具主要是設定path, arch和cross_compile三個環境變數,下面介紹具體設定方法。

在本文件中,原始碼、交叉編譯工具鏈都是存放於/home/book目錄下;如果你的目錄不一樣,請自行修改本節所講述的命令。

book@100ask:

~$ vim ~

/.bashrc

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

設定完畢後,要執行 source ~/.bashrc 命令使其生效,這條命令是載入這些設定的環境變數。

也可以手工執行「export」命令設定環境變數,該設定只對當前終端有效(另開乙個終端需要再次設定)。

100ask_stm32mp157_pro全功能版

執行以下3個命令,第3個命令很長,這裡使用 \ 用來換行,複製的時候需要一併複製,注意 \ 前面沒有空格:

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

先設定path環境變數,然後在make編譯時指定arch架構 cross_compile交叉編譯工具鏈(執行make命令時指定的引數,只對當前命令有效;下次執行make時仍需要再次指定那些引數)。

100ask_stm32mp157_pro全功能版

示例如下,第1條命令很長,這裡使用 \ 用來換行,複製的時候需要一併複製,注意 \ 前面沒有空格:

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-

book@100ask:

~$ echo $arch

armbook@100ask:

~$ echo $cross_compile

arm-buildroot-linux-gnueabihf-

執行以下命令,結果見後圖:

嵌入式Linux 配置交叉編譯工具鏈

我的交叉編譯軟體包為arm 2009q3.tar.bz2,首先在 usr local目錄下建立arm目錄,將軟體包解壓到該目錄下。linux中所有目錄性質都是一樣的,裝在哪個目錄下都是可以的,為了方便管理,一般軟體之類的都裝在 usr目錄下。mkdir usr local arm tar jxvf ...

嵌入式 交叉編譯工具配置及編譯

目的不在如何實現交叉編譯工具配置及編譯,主要記錄一些過程中遇到的一些問題。環境 ununtu16.04 解壓縮交叉編譯器工具 記得將壓縮包拖至虛擬機器中。進入所在目錄 我放在桌面 解壓命令 tar xvzf arm linux gcc 4.5.1 v6 vfp 20101103.tgz c 注意 c...

交叉編譯VIM並移植到ARM嵌入式Linux系統

一 編譯環境 host 機 ubuntu 16.10 32bit target arm 交叉工具鏈 arm linux gnueabi gcc 工具包 vim 7.4.tar.bz2 ncurses 5.9.tar.gz vimncurses 二 編譯準備 home abc test 資料夾,解壓縮...