交叉編譯環境是由編譯器、聯結器和直譯器組合成的綜合開發環境。
交叉編譯工具主要包括針對目標系統的編譯器gcc、目標系統的二進位制工具binutils、目標系統的標準c庫glibc和目標系統的linux核心標頭檔案
安裝上述檔案,並設定變數 prefix 指定可執行程式的安裝路徑執行configure檔案,並使用 --prefix=$prefix引數指定安裝路徑,使用 --target=arm-linux引數指定目標機型別,然後執行make install
執行make mrproper進行清理工作,然後執行make config arch=arm(或make menuconfig/xconfig arch=arm)進行配置
配置完成之後,需要將核心標頭檔案複製到安裝目錄
cp -dr include/asm-arm $prefix/arm-linux/include/asm-arm
cp -dr include/linux $prefix/arm-linux/include/linux
configu的執行引數設定
–prefix=$prefix
–target=arm-linux
–disable-threads
–disable-shared
–enable-languages=c
執行make install,將生成乙個簡單的gcc,由於編譯整個gcc需要目標機的glibc庫,它現在還不存在,因此需要首先生成乙個最簡單的gcc
只需要具備編譯目標機glibc庫的能力即可
這一步針對目標機的cpu
#該過程需要用到linux核心標頭檔案,預設路徑為pre
fix/
arm−
linu
x/sy
s−li
nux在
prefix/arm-linux/sys-linux 在
prefix
/arm
−lin
ux/s
ys−l
inux
在prefix/arm-linx中建立乙個名為sys-linux的軟連線,使其指向核心標頭檔案所在的include目錄
也可以指向configure命令,使用–with-headers引數指定核心標頭檔案的實際路徑
configure的執行引數設定如下,因為是交叉編譯,所以要將編譯器的cc變數設為arm-linux-gcc
cc=arm-linux-gcc/configure
–prefix=pre
fix/
arm−
linu
x−−h
ost=
arm−
linu
x−−e
nabl
e−ad
d−on
s按以上
配置執行
conf
igur
e和ma
kein
stal
l,gl
ibc的
交叉編譯
過程就完
成了這裡
需要指出
,gli
bc的安
裝路徑設
置為
prefix/arm-linux --host=arm-linux --enable-add-ons 按以上配置執行configure和make install,glibc的交叉編譯過程就完成了 這裡需要指出,glibc的安裝路徑設定為
prefix
/arm
−lin
ux−−
host
=arm
−lin
ux−−
enab
le−a
dd−o
ns按以
上配置執
行con
figu
re和m
akei
nsta
ll,g
libc
的交叉編
譯過程就
完成了這
裡需要指
出,gl
ibc的
安裝路徑
設定為prefix arch=arm/arm-linux,如果此處設定不當,第二次編譯gcc時可能找不到glibc的標頭檔案和庫
configure執行引數設定
cc=arm-linux-gcc/configure
–prefix=$prefix/arm-linux
–target=arm-linux
–enable-languages=c,c++
執行make install
到此為止整個交叉編譯環境就完成了
交叉編譯工具鏈製作
交叉編譯就是在乙個平台上生成另乙個平台上的可執行 二進位制。這兩個平台可以是不同的體系結構和不同的作業系統。例如,在嵌入式系統 c c 開發過程中,常常需要在 x86 x86 64 主機上編譯出可執行程式,給 arm或 powerpc 體系結構的裝置執行。交叉編譯的兩個概念 宿主機 host 編譯程...
製作交叉編譯工具鏈 2
解壓crosstool ng tar jxvf crosstool ng 1.23.0 檢查依賴,完成依賴檢查後生成makefile configure prefix home forlinx crosstool install 編譯,編譯成功後進行安裝 make make install 新增環境...
用Crosstool 製作交叉編譯工具鏈
解壓到downloads資料夾 apt get install bison apt get install flex 二 進入解壓後的crosstool vim demo arm softflaot.sh 修改如下兩行 tarballs dir home downloads 所需安裝包儲存目錄 re...