之前一直都是用crosstool来构建交叉编译器的.
这回百度了下结果发现一个新版的crosstool-ng.
crosstool-ng提供了menuconfig来配置交叉编译器.
LET'S GO.
最新版本是1.9.3 暂无PATCH
虚拟机环境:CentOS 6.4(kernel version 2.6.32.358) bridged
相关目录的安排
~/tool/src (保存crosstool-ng创建编译器时所需的各种包)
/crosstool-ng-1.9.3 ( 2.tar -jxvf crosstool-ng*.tar.bz2 -C ~/tool/)放置解压出来的crosstool-ng
/crosstool-ng crosstool-ng的安装目录
/build 编译交叉编译器时的临时工作目录
/opt/x-tool 交叉编译器的安装目录
2.tar -jxvf crosstool-ng*.tar.bz2 -C ~/tool/
3.cd ~/tool/crosstool-ng-1.9.3
.configure --prefix=~/tool/crosstool-ng
4.make install
(*).PATH=$PATH:/home/XXX/tool/crosstool-ng/bin
可以设置下环境变量方便之后的操作.
不过,我的电脑上有点问题.
添加环境变量之后,sudo ct-ng XXXX就有问题.
知道解决方法的可以告诉我一下。
此外,用绝对路径容易讲清楚
5.cp ~/tool/crosstool-ng-1.9.3/samples/arm-unknown-linux-gnueabi/crosstool.config ~/tool/build/.config
6.cd ~/tool/build
7.sudo ~/tool/crosstool-ng/bin/ct-ng menuconfig
需要ncurse库的支持
(我的centos是minimal版本.之后,只用了yum groupinstall “development tool”,
所以刚开始出现了点问题.
试着安装ncurse , yum install 结果显示已经安装了ncurses-5.7.3-*.el6.i686
yum search 之后 发现还有个ncurses-dev-5.7.3-*.el6.i686 安装之后就Ok了)
8.交叉编译器的配置
前面第5点已经拷贝了适合的配置文件,所以这里简单修改即可.
PATHS AND MISC OPTIONS ==>*****PATHS*******
LOCAL TARBALL DIR:~/tool/src
WORKING DIR: ~/tool/buildPREFIX DIR:/opt/x-tool
===>*****BUILD BEHAVIOR****
number of parallel jobs: CPU核心数*2(合理设置下.整个编译时间有一两个小时)
TARGET OPTIONS===>***TARGET OPTIMISATIONS***
Architecture Level:armv4t
Emit assembly for cpu:arm9tdmi
Tune for cpu:arm920t
Toolchain OPTIONS===>***TARGET OPTIMISATIONS***==>tuple' vendor string:XXXXX(eg.S3C2440 Whatever U like)
SAVE.
9.vi ~/tool/build/.config
3处修改下你自己的版本号
CT_KERNEL_VERSION=
CT_KERNEL_V_2_6_XX=y 注意删除#
CT_LIB_GLIBC_MIN_KERNEL=
10.sudo ~/tool/crosstool-ng/bin/ct-ng build(tip:根据.CONFIG文件中的软件版本号,直接从网上下载好所有的package 见本文末尾)
11.vi /etc/profile
添加:PATH=$PATH:/opt/x-tool/bin
reboot生效 OR export
********************************************************************************
SOMETHING WRONG:
@[ERROR] Missing: '-unknown-linux-gnu-gcj' or '-unknown-linux-gnu-gcj' or 'gcj' : either needed!
yum search gcj 然后把相关的安装下
@expat以及strace解压出错:
查看/opt/x-tool/build.log 提示not in gzip format OR not in bzip2 format
file 自动下载下来的包 显示为HTML.
根据版本号,从网上直接下载过来,替换/opt/tool/src中的.同时删除 /tool/build/.XXX.extract相关的.
@[ERROR] Build failed in step 'Installing native gdb'
yum install gdb-static