使用crosstool-ng制作交叉编译工具
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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可以看出,源码包一直在下载.下载和编译安装工具链整个过程需要大概两小时左右.