Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152354
  • 博文数量: 101
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 9
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-17 08:11
文章分类
文章存档

2017年(91)

2016年(10)

我的朋友

分类: LINUX

2017-03-08 14:42:57

原文地址:自己编译arm-linux-gcc 作者:1032120121

方法一:此方法为中文帖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) |
给主人留下些什么吧!~~