ARM平台交叉编译器的制作(2)

cd .. 

tar -xjf gcc-4.7.2.tar.bz2 mkdir gcc-bootstrap-build tar -xf gmp-5.0.5.tar.xz tar -xf mpfr-3.1.1.tar.xz tar -xf mpc-1.0.1.tar.gz cd gcc-4.7.2 mv -v gmp-5.0.5 gmp mv -v mpfr-3.1.1 mpfr mv -v mpc-1.0.1 mpc cd ../gcc-bootstrap-build ../gcc-4.7.2/configure \ --target=$TARGET --host=x86_64-linux-gnu --build=x86_64-linux-gnu \ --enable-targets=all --prefix=$PREFIX \ --enable-languages=c --with-newlib --without-headers --disable-nls \ --disable-threads --disable-shared --disable-libmudflap --disable-libssp \ --disable-libgomp --disable-decimal-float --enable-checking=release \ --disable-bootstrap --disable-libquadmath \ --with-mpfr-include=$(pwd)/../gcc-4.7.2/mpfr/src \ --with-mpfr-lib=$(pwd)/mpfr/src/.libs make -j2 all-gcc make -j2 all-target-libgcc sudo make install-gcc sudo make install-target-gcc sudo cp -v libiberty/libiberty.a $PREFIX/lib # 以下添加libgcc_eh.a,libgcc_s.a到libgcc.a的软链接,防止编译C库时出错 sudo ln -vs libgcc.a `arm-linux-gnueabi-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'` sudo ln -vs libgcc.a `arm-linux-gnueabi-gcc -print-libgcc-file-name | sed 's/libgcc/&_s/'` cd .. 4. 安装内核头文件

tar -xjf linux-3.5.4.tar.bz2 

cd linux-3.5.4 

make ARCH=arm headers_check 

make ARCH=arm INSTALL_HDR_PATH=dest headers_install 

sudo cp -rv dest/include/* $PREFIX/$TARGET/include 

注意:内核头文件的安装位置是$PREFIX/$TARGET/include,而不是$PREFIX 

cd .. 

tar -xjf linux-3.5.4.tar.bz2 cd linux-3.5.4 make ARCH=arm headers_check make ARCH=arm INSTALL_HDR_PATH=dest headers_install sudo cp -rv dest/include/* $PREFIX/$TARGET/include 注意:内核头文件的安装位置是$PREFIX/$TARGET/include,而不是$PREFIX cd .. 5. 编译C库

tar -xf glibc-2.16.0.tar.xz 

tar -xjf glibc-linuxthreads-2.5.tar.bz2 -C glibc-2.16.0 

tar -xf glibc-ports-2.16.0.tar.xz 

mv glibc-ports-2.16.0 glibc-2.16.0/ports 

mkdir glibc-build 

cd glibc-build 

 

CC=$TARGET-gcc \ 

AR=$TARGET-ar \ 

RANLIB=$TARGET-ranlib \ 

../glibc-2.16.0/configure \ 

  --host=$TARGET \ 

  --prefix=$PREFIX/$TARGET \ 

  --with-tls --disable-profile \ 

  --enable-add-ons --with-headers=$PREFIX/$TARGET/include \ 

  libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes libc_cv_arm_tls=yes 

注意:C库的安装位置是$PREFIX/$TARGET,编译完整的gcc时链接使用 

sudo make -j2 

sudo -s 

. ../armenv 

make install 

exit 

cd .. 

tar -xf glibc-2.16.0.tar.xz tar -xjf glibc-linuxthreads-2.5.tar.bz2 -C glibc-2.16.0 tar -xf glibc-ports-2.16.0.tar.xz mv glibc-ports-2.16.0 glibc-2.16.0/ports mkdir glibc-build cd glibc-build CC=$TARGET-gcc \ AR=$TARGET-ar \ RANLIB=$TARGET-ranlib \ ../glibc-2.16.0/configure \ --host=$TARGET \ --prefix=$PREFIX/$TARGET \ --with-tls --disable-profile \ --enable-add-ons --with-headers=$PREFIX/$TARGET/include \ libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes libc_cv_arm_tls=yes 注意:C库的安装位置是$PREFIX/$TARGET,编译完整的gcc时链接使用 sudo make -j2 sudo -s . ../armenv make install exit cd .. 6. 编译完整的gcc

tar -xf gmp-5.0.5.tar.xz 

cd gmp-5.0.5 

./configure --prefix=/usr 

make -j2 

sudo make install 

cd .. 

 

tar -xf mpfr-3.1.1.tar.xz 

cd mpfr-3.1.1 

./configure --prefix=/usr 

make -j2 

sudo make install 

cd .. 

 

tar -xf mpc-1.0.1.tar.gz 

cd mpc-1.0.1 

./configure --prefix=/usr 

make -j2 

sudo make install 

cd .. 

# 若系统中安装gmp,mpfr,mpc且版本满足要求,可不用编译安装。 

# 构建期间,将三者安装到其他位置,并添加了链接搜索路径,试了几次都没有成功。 

# 有时间再做尝试,估计是哪里配置不正确。 

 

../gcc-4.7.2/configure --target=$TARGET \ 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/154a96a7eb066de7be8faa6fb26cb759.html