原创文章版权所有!如需转载,请注明出处: http://hi.baidu.com/liushuiyue1/myhome谢谢合作!!!!!
一、安装交叉编译器
1)交叉编译器使用CodeSourcery提供的符合EABI标准的arm-none-linux-gnueabi-gcc-4.4.1交叉编译器,下载地址:
http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/
2)下载后,解压到/opt/目录:
# tar jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt/
3)因为/opt/arm-2009q3/bin/目录中的可执行文件均以不常用的" arm-none-linux-gnueabi- "开头,做几个arm-linux-xxx软链接以方便日后使用:
ln -s arm-none-linux-gnueabi-gdbtui arm-linux-gdbtui ln -s arm-none-linux-gnueabi-addr2line arm-linux-addr2line ln -s arm-none-linux-gnueabi-gprof arm-linux-gprof ln -s arm-none-linux-gnueabi-ar arm-linux-ar ln -s arm-none-linux-gnueabi-as arm-linux-as ln -s arm-none-linux-gnueabi-nm arm-linux-nm ln -s arm-none-linux-gnueabi-ld arm-linux-ld ln -s arm-none-linux-gnueabi-c++ arm-linux-c++ ln -s arm-none-linux-gnueabi-objcopy arm-linux-objcopy ln -s arm-none-linux-gnueabi-c++filt arm-linux-c++filt ln -s arm-none-linux-gnueabi-cpp arm-linux-cpp ln -s arm-none-linux-gnueabi-ranlib arm-linux-ranlib ln -s arm-none-linux-gnueabi-objdump arm-linux-objdump ln -s arm-none-linux-gnueabi-readelf arm-linux-readelf ln -s arm-none-linux-gnueabi-size arm-linux-size ln -s arm-none-linux-gnueabi-gcov arm-linux-gcov ln -s arm-none-linux-gnueabi-strings arm-linux-strings ln -s arm-none-linux-gnueabi-gdb arm-linux-gdb ln -s arm-none-linux-gnueabi-strip arm-linux-strip ln -s arm-none-linux-gnueabi-sprite arm-linux-sprite ln -s arm-none-linux-gnueabi-gcc-4.4.1 arm-linux-gcc-4.4.1 |
4)同时在/opt/arm-2009q1/bin/目录建立如下两个脚本:
脚本arm-linux-g++的内容:
#!/bin/sh exec arm-none-linux-gnueabi-g++ -march=armv4t $* |
脚本arm-linux-gcc的内容:
#!/bin/sh exec arm-none-linux-gnueabi-gcc -march=armv4t $* |
5)为以上两个脚本加上可执行属性:
# chmod +x arm-linux-g++
# chmod +x arm-linux-gcc
6)输出交叉编译器的可执行文件的路径到PATH环境变量:
# export PATH=/opt/arm-2009q3/bin:$PATH
以后要用到arm-linux-gcc-4.4.1交叉编译器时都应该先在终端上执行上面一句!
7)查看是否安装成功:
# arm-linux-gcc -v
如果成功的话,可以看到如下信息:
Using built-in specs. Target: arm-none-linux-gnueabi Configured with: /scratch/mitchell/builds/4.4-arm-none-linux-gnueabi-respin/src/gcc-4.4/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}' --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2009q3-67' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/mitchell/builds/4.4-arm-none-linux-gnueabi-respin/lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/mitchell/builds/4.4-arm-none-linux-gnueabi-respin/lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/mitchell/builds/4.4-arm-none-linux-gnueabi-respin/lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/mitchell/builds/4.4-arm-none-linux-gnueabi-respin/lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/mitchell/builds/4.4-arm-none-linux-gnueabi-respin/lite/install/arm-none-linux-gnueabi/bin Thread model: posix gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) |