构建交叉编译链arm-linux-gnueabihf-
终于......成功了....
首先感谢http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/
再加个参考网址保险点,以前看这个一直没能成功...现在懂了...:
http://wiki.osdev.org/GCC_Cross-Compiler
需要先下载下列包,换过其他版本,都失败过...我也是醉了...
wget http://ftpmirror.gnu.org/binutils/binutils-2.24.tar.gz
wget http://ftpmirror.gnu.org/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.79.tar.xz
wgethttp://ftpmirror.gnu.org/glibc/glibc-2.20.tar.xz
wget http://ftpmirror.gnu.org/mpfr/mpfr-3.1.2.tar.xz
wget http://ftpmirror.gnu.org/gmp/gmp-6.0.0a.tar.xz
wget http://ftpmirror.gnu.org/mpc/mpc-1.0.2.tar.gz
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
Build Steps
先解压缩所有压缩包:
for f in *.tar*; do tar xf $f; done
(涨知识了...)
把 mpfr,gmp,mpc,isl,cloog放到gcc目录下:
cd gcc-4.9.2
ln -s ../mpfr-3.1.2 mpfr
ln -s ../mpc-1.0.2 mpc
ln -s ../isl-0.12.2 isl
ln -s ../cloog-0.18.1 cloog
cd ..
然后再创建一个交叉编译根目录:
sudo mkdir -p /opt/cross
sudo chown -R 777 /opt/cross
申明环境变量:
export PREFIX=/opt/cross
export PATH=/opt/cross/bin:$PATH
export TARGET=arm-linux-gnueabihf
ok,开始主要步奏
=========================================
Step 1:构建Binutils
mkdir build-binutils
cd build-binutils
../binutils-2.24/configure --prefix=$PREFIX --target=$TARGET --disable-multilib
make -j8
sudo make install
cd ..
Step 2:Linux Kernel Headers
cd linux-3.4.79
sudo make ARCH=arm INSTALL_HDR_PATH=/opt/cross/$TARGET headers_install
cd ..
Step 3:C/C++ Compilers
mkdir build-gcc
cd build-gcc
../gcc-4.9.2/configure --prefix=$PREFIX --target=$TARGET --enable-languages=c,c++ --disable-multilib
make -j8 all-gcc
sudo make install-gcc
cd ..
Step 4:Standard C Library Headers and Startup Files
mkdir -p build-glibc
cd build-glibc
../glibc-2.20/configure --prefix=/opt/cross/$TARGET --build=$MACHTYPE --host=$TARGET --target=$TARGET --with-headers=/opt/cross/$TARGET/include --disable-multilib libc_cv_forced_unwind=yes
sudo make install-bootstrap-headers=yes install-headers
sudo make -j8 csu/subdir_lib
sudo install csu/crt1.o csu/crti.o csu/crtn.o /opt/cross/$TARGET/lib
sudo $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o /opt/cross/$TARGET/lib/libc.so
sudo touch /opt/cross/$TARGET/include/gnu/stubs.h
cd ..
Step 5:Compiler Support Library
cd build-gcc
sudo make -j8 all-target-libgcc
sudo make install-target-libgcc
cd ..
Step 6:Standard C Library
cd build-glibc
sudo make -j8
sudo make install
cd ..
Step 7:Standard C++ Library
cd build-gcc
sudo make -j8
sudo make install
cd ..
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。