iTOP4412交叉编译器构建

本文档介绍了如何使用crosstool-ng工具构建自定义的交叉编译器,包括下载crosstool-ng源码、配置、编译和安装过程,以及详细步骤中的关键配置选项,如架构、内核版本和glibc版本的选择。通过此方法,开发者可以根据项目需求定制适合的交叉编译工具链。
摘要由CSDN通过智能技术生成

嵌入式开发离不开交叉编译器,虽然也可以从网上下载交叉编译器,但是有时需要构建属于自己配置的交叉编译器。下面将讲解如何用crosstool-ng构建自己的交叉编译工具链,可以参考http://crosstool-ng.github.io/docs/这里的说明来构建,下面是我构建交叉编译器的总结

1.执行mkdir crosstool-ng创建一个crosstool-ng文件夹,到crosstool-ng网管http://crosstool-ng.github.io/下载一个最新版本的发布文件压缩包http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.24.0.tar.bz2放到crosstool-ng目录下

2.用命令tar xvjf crosstool-ng-1.24.0.tar.bz2解压文件得到crosstool-ng-1.24.0文件夹,在crosstool-ng目录下创建crosstool-ng-install文件夹

3.进入crosstool-ng-1.24.0文件夹进行配置编译和安装crosstool-ng

3.1 在进行配置之前先执行./bootstrap,这个时候如果报错提示缺少那些工具,可以执行执行sudo yum provides xxx来确定需要安装哪个软件包,xxx是报错提示缺少的工具

3.2 执行将./configure --prefix=`pwd`/../crosstool-ng-install配置,编译crosstool-ng会最终安装在crosstool-ng目录下的crosstool-ng-install文件夹下,然后分别执行make和make install

3.3 make install之后crosstool-ng-install文件夹下会多出bin、libexec和share三个文件夹,其中bin目录下会有一个ct-ng文件,需要将bin这个路径的环境变量加入用户目录下的.bashrc文件的PATH中,如

export PATH=/home/test/project/crosstool-ng/crosstool-ng-install/bin:$PATH,然后执行source ~/.bashrc让该环境变量生效

4. 回到crosstool-ng目录下crosstool-ng-tarballs和crosstool-ng-target目录,他们分别是用来保存构建交叉编译过程保存下载源码压缩包的路径和保存最终生成交叉编译器的路径

5.前面都是为构建交叉编译器做准备,下面才是真正要构建交叉编译器。需要执行ct-ng menuconfig来配置,可以先执行ct-ng list-samples,看看crosstool-ng自带哪些配置

看到这些首先需要给大家说明一下交叉编译器的命名规则,交叉编译器是采用arch [-vendor] [-os] [-(gnu)eabi]格式进行命名的。

其中arch表示目标主机的架构,如iTOP4412是arm架构,那么就是arm;

vendor表示工具链供应商,这个如果是我们自己构建的一般为none或者unknown

os表示交叉编译器支持的操作系统,这个跟编译的时候链接库是息息相关的,我们嵌入式一般是用Linux系统的链接库

-(gnu)eabi gnu就是gnu操作系统的意思,eabi:嵌入式应用二进制接口(Embedded Application Binary Interface)

根据交叉编译器的命名规则,我们可以判断出上面的arm-unknown-linux-gnueabi配置跟我们的需求是最接近的

6.执行ct-ng arm-unknown-linux-gnueabi加在crosstool-ng自带的arm-unknown-linux-gnueabi默认配置

7.执行ct-ng menuconfig进行图形配置,需要用到上下左右按键进行挑选,用enter键或者空格键进行选择

7.1 配置构建交叉编译器过程中下载源码压缩包的路径和保存最终生成交叉编译器的路径

7.2 配置架构、大小端、cpu的位数以及浮点运算选项

7.3 配置Linux内核版本

7.4 配置glibc版本

7.5 配置gcc版本,在u-boot-2013只支持gcc3和gcc4

7.6 配置完之后选择save进行配置项的保存,最终保存到当前目录下的.config文件,然后跳到Exit退出

8. 配置完之后执行ct-ng build进行编译,这个编译过程比较久,时长根据个人网络和主机配置而定,在编译过程可能还会报错,需要查看当前目录下的build.log文件查看报错原因并修改,一般都是源码包下载问题,或者可以直接下载源码包放到crosstool-ng-tarballs目录下。

9.编译完之后在crosstool-ng-target目录下会出现如下文件

这里就包含了我们整个交叉编译器命令行、头文件和链接库等。如果我们需要运用该交叉编译器,就需要将crosstool-ng-target下的bin目录加入用户目录下的PATH环境变量中,如:export PATH=/home/test/project/crosstool-ng/crosstool-ng-install/bin:/opt/crosstool-ng-targets/bin:$PATH,然后再执行source ~/.bashrc让环境变量生效,或者重启系统。

10. 设置环境变量之后,在终端中输入arm-然后按下tab键就可以看到交叉编译器的所有命令集了

以上就是crosstool-ng构建交叉编译器的过程,如有不对的地方,有请指正!

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhoutuan1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值