Crosstool-ng制作交叉编译工具链:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Tonghuix留言 | 贡献
Tonghuix留言 | 贡献
第32行: 第32行:
= 配置自己的交叉编译器 =
= 配置自己的交叉编译器 =


crosstool-ng可以配置各种平台的交叉编译器,也可以构建符合自己实用条件的个性编译器。下面以ARM平台为例,制作具有一定通用性的交叉编译器。这里我们从一个现成的编译器配置开始,用例子里的arm-unknown-linux-gnueabi作为配置的脚本,然后来做一个交叉编译器。
crosstool-ng可以配置各种平台的交叉编译器,也可以构建符合自己实用条件的个性编译器。下面以ARM平台为例,制作具有一定通用性的交叉编译器。这里我们从一个现成的编译器配置开始,用例子里的arm-unknown-linux-gnueabi作为配置的基础,然后来做一个交叉编译器。


将crosstool-ng源码包中samples/arm-unknown-linux-gnueabi/下的crosstool.config拷贝到源码包主目录下,在主目录下执行
将crosstool-ng源码包中samples/arm-unknown-linux-gnueabi/下的crosstool.config拷贝到源码包主目录下,在源码包主目录下执行
   
   
  cp samples/arm-unknown-linux-gnueabi/crosstool.config .config
  cp samples/arm-unknown-linux-gnueabi/crosstool.config .config
第42行: 第42行:
  ct-ng menuconfig
  ct-ng menuconfig


进入配置菜单,与linux内核很类似
进入配置菜单,与linux内核很类似\\
先检查一下
 
Target options  --->
    Target Architecture (arm)  ---> # 注意看这项是不是ARM平台


= 自动下载和编译 =
= 自动下载和编译 =

2011年5月13日 (五) 15:23的版本

之所以用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

配置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
  1. 将此源码包解压缩并编译安装
 tar xvjf crosstool-ng-1.11.1.tar.bz2
 cd crosstool-ng--1.11.1
 make
 sudo make install
  1. 如果一切正常,则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内核很类似\\ 先检查一下

Target options  --->
    Target Architecture (arm)  ---> # 注意看这项是不是ARM平台

自动下载和编译

下载

安装交叉编译器和测试

安装