个人工具
119.28.94.63
该IP地址的讨论
登录
查看“Crosstool-ng制作交叉编译工具链”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“Crosstool-ng制作交叉编译工具链”的源代码
来自Ubuntu中文
←
Crosstool-ng制作交叉编译工具链
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
之所以用crosstool-ng是因为crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者。crosstool的gcc版本只能到4.1.1,无法编译版本高于2.6.29的linux内核。而crosstool-ng一直保持着更新,现在最新能够建立 gcc 4.3.2版本,可用来编译最新内核。 ;编译的系统环境是:ubuntu 10.10 + crosstool-ng 1.11.1 ;目标平台:ARMv4t, arm9tdmi,s3c2440 = 配置ubuntu编译环境 = 安装编译所需的包 sudo apt-get install sed bash cut dpkg-dev bison flex patch texinfo automake m4 libtool stat cvs websvn tar gzip bzip2 lzma readlink libncuses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk -y 安装结束以后就可以用了。 如果后面出现编译错误,再增加相应的包即可 = 安装crosstool-ng = ;1. 首先从官方网站上下载crosstool-ng的源码包 http://ymorin.is-a-geek.org/download/crosstool-ng/crosstool-ng-1.11.1.tar.bz2 ;2. 将此源码包解压缩并编译安装 tar xvjf crosstool-ng-1.11.1.tar.bz2 cd crosstool-ng--1.11.1 make sudo make install ;3. 如果一切正常,则ct-ng命令就可以用了 注:编译的时候如果出现错误,可以利用apt-get的方式安装相应的包即可 = 配置自己的交叉编译器 = crosstool-ng可以配置各种平台的交叉编译器,也可以构建符合自己实用条件的个性编译器。下面以ARM平台为例,制作具有一定通用性的交叉编译器。这里我们从一个现成的编译器配置开始,用例子里的arm-unknown-linux-gnueabi作为配置的基础,然后来做一个交叉编译器。 ;将crosstool-ng源码包中samples/arm-unknown-linux-gnueabi/下的crosstool.config拷贝到源码包主目录下,在源码包主目录下执行 cp samples/arm-unknown-linux-gnueabi/crosstool.config .config ;然后执行: ct-ng menuconfig ;进入配置菜单,与linux内核很类似 :在这里,我对以下各选项稍作修改 Paths and misc options ---> ...... (${HOME}/src) Local tarballs directory # 指定制作编译器所需要的源码包的下载存放,可以修改成任意位置,请注意权限。现在指定到~/src下。 ...... (/opt/${CT_TARGET}) Prefix directory # 制作好的编译器所放置的目录 Target options ---> Target Architecture (arm) ---> # 注意看这项是不是ARM平台 ...... Floating point: (software) ---> # 对于很多ARM架构CPU来说是不支持硬浮点运算的,所以选择软件方式有更好的兼容性 ...... [*] Use EABI # 是否实用EABI方式,对某些指令采用异常的方式来处理(如除法指令),建议选中 Toolchain options ---> ..... (tonghuix) Tuple's vendor string # 这里可以修改成你自己的个性化名称,最后会生成形如arm-yourname-linux-gnueabi这样的编译器前缀 ;修改好以后就可以开始编译了。 = 自动下载和编译 = 下面就可以开始编译了,默认情况下,源码包会从网络下载,会占用比较大的带宽,下载后总大小在200MB左右,下载好会放到 ~/src下。 开始编译 ct-ng build 经过大概3个小时的下载(2M ADSL小水管)和90分钟的编译过程,在/opt/下生成了arm-tonghuix-linux-gnueabi目录 ;注:也可以提前下载好,放到~/src下,但请注意下载的文件名必须一致,否则会重新下载,下面是利用arm-unkown-linux-gnueabi模板生成交叉编译器所需要的源码文件列表 binutils-2.19.1.tar.bz2 dmalloc-5.5.2.tgz duma_2_5_15.tar.gz ecj-latest.jar expat-2.0.1.tar.gz gcc-4.3.2.tar.bz2 gdb-6.8.tar.bz2 glibc-2.9.tar.bz2 glibc-ports-2.9.tar.bz2 gmp-4.3.2.tar.bz2 libelf-0.8.13.tar.gz linux-2.6.33.12.tar.bz2 ltrace_0.5.3.orig.tar.gz mpfr-2.4.2.tar.bz2 ncurses-5.7.tar.gz strace-4.5.19.tar.bz2 = 安装交叉编译器和测试 = 安装 = 修改源码包的版本 =
返回至
Crosstool-ng制作交叉编译工具链
。