Ubuntu 12.10安装交叉编译器arm-none-linux-gnueabi-gcc

来源:互联网 发布:盛科网络上市了吗 编辑:程序博客网 时间:2024/05/20 05:58

注意:不同位数操作系统采用不同交叉编译器的

之前一直在32位的机器上做交叉编译,用的是Sourcery的交叉编译器。

http://www.mentor.com/embedded-software/codesourcery 
最近换了64位机器,装了64位的Ubuntu 12.04,上述编译器是32位的。要想在64位Linux下运行,必须安装ia32-libs。Ubuntu 12.04 Server版的还好,装起来比较顺利,但是Desktop版本的装了ia32-libs之后,不知道什么地方冲突了,Eclipse CDT的ZylinCDT插件不好使了。这么重要的调试插件不能用真的很抓狂,于是我把Sourcery的源代码下下来,把它编译成64位的了。
编译的过程很痛苦,Sourcery的源码就是一大堆源代码,加上一个好几百kB的Bash文件……
这个Bash里面又有很多路径要设置,而且有很多Sourcery CodeBench和mingw的内容,需要把它们删掉。
glibc里面的x86_64配置文件还有会造成无限循环的bug,需要改掉。
编译还需要build-essential, automake, texinfo, texlive, gettext, bison, flex这些软件包,automake中的autoconf还必须是2.68版本的,高了低了都不行……
此处省略过几万行的血泪史……

我的i7-3520 + SSD本,捣鼓了两天之后,有了这几个文件。
需要64位编译器的,请下载:
arm-2013.05-23-arm-none-eabi-x86_64-linux-gnu.tar.bz2
arm-2013.05-24-arm-none-linux-gnueabi-x86_64-linux-gnu.tar.bz2
需要源码的,请下载:
2013.05-arm-eabi-release.tar.bz2
2013.05-arm-linux-release.tar.bz2

注意:虽然用的是Sourcery的源码,但本人不保证编译器没有BUG;中间带eabi的用于编译u-boot和内核,中间带linux-gnueabi的用于编译linux下的应用程序;想使用源码的还需要改脚本中的路径。
本人对制作交叉编译器是基本不懂,只是把Sourcery的脚本改得能跑了而已。
编译环境是64位Ubuntu Desktop 10.04 LTS,已测64位Ubuntu Server 12.04 LTS可用。
如果有问题,欢迎大家在此留言交流。


Ubuntu 12.10安装交叉编译器arm-none-linux-gnueabi-gcc

1.下载 arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

cp arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /usr/local/

2.解压缩交叉编译工具链

cd /usr/local/

 tar -jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

3.配置环境变量

# vim /etc/bash.bashrc  在最后添加

PATH=$PATH:/usr/local/bin/arm-2009q1/bin

source  /etc/bash.bashrc 使其立刻生效

4.打开另一个终端

执行 arm-none-linux-gnueabi-gcc -v,显示版本即说明安装成功

root@ubuntu:/usr/local/arm-2009q1# arm-none-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /work/toolchain/build/src/gcc-4.5.1/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.5.1 --with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --enable-languages=c,c++ --disable-multilib --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=softfp --with-pkgversion=ctng-1.8.1-FA --with-bugurl=http://www.arm9.net/ --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-mpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-cloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-mpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-libelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static --enable-threads=posix --with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.5.1 (ctng-1.8.1-FA) 
root@ubuntu:/usr/local/arm-2009q1#

如果不行,重新启动在执行上述命令查看。

0 0
原创粉丝点击