使用crosstool-ng制作交叉编译工具
1.下载crosstool-ng(本人使用crosstool-ng-1.22.0.tar.gz版本)
http://crosstool-ng.org/download/crosstool-ng/
2.平台:PC虚拟机Centos6.9,板子是nuc972
3.首先要在非root下进行操作
4.用 tar 解压crosstool-ng-1.22.0.tar.gz
然后 ./configure (可以用--prefix=xxx 指定目录) ,make && make install
成功显示:
For auto-completion, do not forget to install 'ct-ng.comp' into
your bash completion directory (usually /etc/bash_completion.d)
5.把安装了的ct-ng路径加入到PATH中(修改/etc/profile文件,并使之生效)
然后 ct-ng -v查看是否加入成功,成功显然如下
Built for redhat-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
6.创建一个目录存储配置文件mkdir cross-ng,cd cross-ng ,使用命令 ct-ng list-samples列出相近的配置文件,并用ct-ng arm-unknown-linux-gnueabi-gcc(arm-unknown-linux-gnueabi-gcc 为 ct-ng list-samples列出的列表)在当前目录拷贝配置文件
7.使用ct-ng menuconfig进入配置对话框,
(1)在Paths and misc options设置源文件存储路径与目标存储路径

(2)在Target options 的子目录修改处理器架构,其他设置可以默认(arm926ej-s是板子的处理器架构型号)

(3)在Operating System下的Linux Kernel version 选择Linux内核版本(此处我选择3.10.93)
(4)在C-compiler下的gcc version 选择gcc版本(此处我选择4.7.4)
(5)在C-library下的glibc version选择glibc版本(此处我选择2.12.1)
(6)还可以在Toolchain options下的Tuple's vendor string 修改arm-unkown-linux-gnueabi-gcc中的“unkown”
8.完成以上配置,并保存,在命令行输入ct-ng build ,并等待完成交叉编译工具的创建
9.经验:使用crosstool-ng制作交叉编译工具往往并不是一帆风顺,其中会遇到很多问题,有些问题只需要下载某些库就可以解决,有些问题网上也有些经验,也有很多问题没有一点头绪,往往需要根据build.log查看具体问题在哪,然后一步一步解决。有时候没有头绪时,更换配置选项往往能解决问题,如更改gcc版本,更改glibc版本(此处我就是通过更换gcc版本和glibc版本才最好编译成功)。
以上,
2018-10-29
浙公网安备 33010602011771号