方法一:此方法为中文帖copy版,只是提供一个编译交叉工具链的思路而已,实际编译未成功。
参考了下面的三篇帖子,严格安装步骤做就不会出现问题,此处不再赘述
其中基本软件包在 下载,
其余的patch包在 下载。
因为任何编译器运行都要同时有对应的glibc库支持,arm交叉编译器同样也要构建arm的glibc交叉编译库。构建arm-linux-gcc交叉编译器的基本思路是:
(1)构建无库支持的简单arm-linux-gcc等交叉编译器;
(2)使用arm linux内核源码的头文件构建glibc库;
(3)通过构建的glibc库再构建有库支持的完整arm-linux-gcc和arm-linux-g++等交叉编译器;
方法二:此方法为老外的英文帖,参照HOWTO说明逐步进行,实际编译的结果是构建glibc成功,第一次构建无库gcc和最后一次构建有库gcc都出现同样的GCC_NOT_EXECUTABLE错误,最终未通过。
关于这个错误,可以研究一下这个帖子
howto
方法三:由于自己动手编译交叉工具链失败,所以使用现成的脚本文件来编译交叉工具链的方法浮出水面。
此方法使用老外维护的脚本工具crosstool,可构建多种平台的交叉编译工具,要求网络通畅便于从在线下载gcc,glibc源代码包,目前更新的版本为0.43。此方法的优点是简单,不用人工干预,缺点是目前使用的gcc和glibc的版本太低,无法构建高版本的gcc。
构建方法参照是:
(1)以root用户登录;
(2)创建目录/opt/crosstool/并修改并修改其owner。chown username /opt/crosstool.
因为此crosstool不能以root安装,而须以username安装,安装过程会读写此目录,故需要修改属主。
(3)切换到username, su username.
(4)创建目录/home/username/downloads这个目录将来用于自动从网上下载gcc, binutilty,glibc等。如果自己已经下载了这些软件包,也放在这个目录下,这样就不用程序自动从网上下载了。
(5)从下载crosstool-0.43.tar.gz到目录/opt/crosstool
(6)cd /opt/crosstool tar xzvf crosstool-0.43.tar.gz
(7) 进入crosstool-0.43目录,执行sh demo-arm-softfloat.sh
(8)漫长的等待之后,然后会在默认的/opt/crosstool/目录下面产生一个名为arm-softfloat-linux-gnu的目录,它下面就是刚刚编译成功的交叉编译器了。
参考帖子:
总结:由于gcc与glibc的版本配合不同,编译方法也不同,网上的参考帖都是针对特定版本gcc,glibc的构建过程,所以没有一个统一的构建方法。编译不成功后出现的问题比较有普遍性,虽无标准的解决方法,但能从回帖中学到很多有用的知识。
阅读(862) | 评论(0) | 转发(0) |