查看“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制作交叉编译工具链
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息