使用crosstool-ng制作交叉编译工具

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1下载crosstool-ng-1.21.0.tar.bz2

2安装crosstool-NG

安装步骤:

(1)./configure --prefix=/home/cc/software/crosstool

(2)make

(3)make install

(4)配置环境变量 PATH="${PATH}:/home/cc/software/crosstool/bin"

完成后在终端输入命令ct-ng help测试

3配置crosstool-NG

终端运行命令ct-ng menuconfig进入配置菜单, 对以下各选项稍作修改

Paths and misc options --->

......

(${HOME}/src) Local tarballs directory # 指定制作编译器所需要的源码包的下载存放,可以修改成任意位置,请注意权限。现在指定到~/src下。

......

(/home/cc/software/crosstool/prefix-dir) Prefix directory # 制作好的编译器所放置的目录

Target options --->

Target Architecture (arm) ---> # 注意看这项是不是ARM平台

......

Floating point: (software) ---> # 对于很多ARM架构CPU来说是不支持硬浮点运算的,所以选择软件方式有更好的兼容性

......

Toolchain options --->

.....

(zs) Tuple's vendor string # 这里可以修改成你自己的个性化名称,最后会生成形如arm-yourname-linux-gnueabi这样的编译器前缀

修改好以后就可以开始编译了。

菜单配置页面:

4自动

下载

源码

(gcc,

binut

ils,g

libc

等)并

编译

执行命

令ct-

ng

build

说明:自动下载的源码压缩包位于${HOME}/software/crosstool/work-dir/tarballs

下载的源码包有:

binutils-2.25.tar.bz2

gcc-5.1.0.tar.bz2

gmp-6.0.0a.tar.xz

isl-0.14.tar.xz

mpc-1.0.2.tar.gz

mpfr-3.1.2.tar.xz

newlib-2.2.0.tar.gz

5编译工具链使用测试

在文件夹~/software/crosstool/prefix_dir/bin下打开终端执行arm-zs-eabi-gcc -v

打印输出结果如下图,证明arm交叉编译工具链可以用.

遇到的问题及解决方法:

1如果依赖包没有安装导致第一步报错,则使用apt-get install命令安装相应包.以下网址包含了所有可能缺少的依赖包及解决方法:

/files/doc/docbook/crosstool_ng/release/htmls/crosstool_ng_ common_errors.html#missing_gnu_libtool_1_5_26

其中,libtool 包需要手动下载安装,下载地址见

/gnu/libtool/?C=M;O=D

2执行编译命令(ct-ng build)时,终端表现为假死状态,即没有反馈.这时程序实际在后台执行,这点可以从工作目录${HOME}/software/crosstool/work-dir/tarballs可以看出,源码包一直在下载.下载和编译安装工具链整个过程需要大概两小时左右.

相关文档
最新文档