編譯ARM Linux GCC工具鏈

2022-09-14 01:24:09 字數 2446 閱讀 2531

gnu編譯工具鏈包括binutils,gcc,glibc

binutils:彙編器、聯結器

gcc:預處理器、編譯器

glibc: c語言庫

編譯arm-linux-gcc要編譯兩次,第1次是不帶庫的純gcc,可以用來編譯裸機程式如linux核心,u-boot等.

然後用第1次編譯的gcc來編譯目標glibc(或者uclibc)

然後進行第二次gcc編譯.

準備以下原始碼:

binutils-2.25.tar.bz2

gcc-4.9.2.tar.bz2

glibc-2.21.tar.xz

gmp-5.1.3.tar.xz

linux-3.4.106.tar.xz

mpc-1.0.3.tar.gz

mpfr-3.1.2.tar.xz

編譯順序:

gmp -> mpfr -> mpc -> binutils -> gcc -> glibc -> binutils -> gcc

1.依次編譯gmp,mpfr,mpc

預設安裝位置是/usr/local/lib

#./configure

#make

#make install

2.編譯binutils

# ./configure --host=i686-linux-gnu --disable-nls --disable-multilib --disable-shared --target=arm-linux-gnueabi --prefix=/home/toolchain/arm-linux-gnueabi-4.9.2 --with-sysroot=/home/toolchain/arm-linux-gnueabi-4.9.2/arm-linux-gnueabi/sysroot

#./configure --disable-nls --disable-multilib --disable-shared --target=arm-none-linux-gnueabi --prefix=/home/toolchain/arm-linux-gcc-nolibc

# make

# make install

3.編譯gcc

../configure --host=i686-linux-gnu --enable-targets=all --disable-shared --enable-languages=c --disable-checking --disable-threads --disable-multilib --disable-nls --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --without-headers --with-newlib --disable-bootstrap --disable-libquadmath --disable-libatomic --with-cpu=arm920t --target=arm-none-linux-gnueabi --prefix=/home/toolchain/arm-none-linux-gnueabi

4.編譯glibc

#cc=arm-none-linux-gnueabi-gcc ../configure --host=arm-linux-gnueabi --prefix=/usr --enable-kernel=2.6.32 --with-headers=/home/gnu/linux-3.4.106/usr/include --disable-profile --with-tls --enable-shared -cache-file=config.cache

#make -j4

#make install_root=/home/toolchain/arm-linux-gcc/arm-linux-gnueabi/sysroot install

5.再編譯gcc

../configure --host=i686-linux-gnu --disable-shared --enable-targets=all --with-cpu=arm920t --enable-languages=c --disable-multilib --disable-nls --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-bootstrap --disable-libquadmath --disable-libatomic --target=arm-linux-gnueabi --enable-threads=posix --prefix=/home/toolchain/arm-linux-gnueabi-4.9.2 --with-sysroot=/home/toolchain/arm-linux-gnueabi-4.9.2/arm-linux-gnueabi/sysroot



編譯ARM Linux Gcc工具鏈!

昨天早晨就開始準備編譯工具鏈了,這樣就可以接下去學習第三章了,鬱悶的是,我編譯過程總是出錯,我就在想是不是我輸入錯誤呢,看出錯提示,也不是這種型別的啊!就停在這裡不動了。今天下午,我著重比較了一下書中的步驟,我是按部就班的,所以應該不是步驟的錯誤,它使用的是ubuntu7,而我使用的是ubuntu9...

arm linux gcc交叉編譯工具鏈過程!

二 把檔案通過虛擬機器安裝的tool工具後共享到虛擬機器的linux裡面,存放在 mnt hgfs底下 三 把該壓縮包複製或者移動到 home目錄底下進行操作 切記在共享目錄下操作 四 解壓該包tar xvf arm linux gcc 4.3.2.tar.bz2 五 解壓之後進入解壓後的包 交叉編...

ARM LINUX GCC 編譯選項介紹

我們需要編譯出執行在arm平台上的 所使用的交叉編譯器為arm linux gcc。下面將arm linux gcc編譯工具的一些常用命令引數介紹給大家。在此之前首先介紹下編譯器的工作過程,在使用gcc編譯程式時,編譯過程分為四個階段 1 預處理 pre processing 2 編譯 compil...