Linux:crosstool-ng制作自己的交叉编译工具
来源:互联网 发布:java如何调用api接口 编辑:程序博客网 时间:2024/05/01 03:25
以前都是用别人制作好的交叉编译工具。
这次尝试一下自己做。参考了网上一些文章,结合自己的实际环境,制作成功了。制作过程记录如下:
HOST 系统:Ubuntu 10.04
Linux内核: linux-2.6.38.12
获取crosstool-ng源码包:
http://crosstool-ng.org/download/crosstool-ng/
我选了下面这个版本:
crosstool-ng-1.9.0.tar.bz22010-Nov-03 18:11:241.7Mapplication/x-bziptar xvf crosstool-ng-1.9.0.tar.bz2 得到crosstool-ng-1.9.0文件夹
接下来建立一个存放crosstool的文件夹,我的是/home/wsn/my_crosstool-ng
然后进入这个crosstool-ng-1.9.0文件夹
./configure --prefix=/home/wsn/my_crosstool-ngmake
这时很可能你的系统会缺少很多必要的工具,所以都得一一安装,这样make才能通过
缺少的工具,可以通过sudo apt-get install xx来安装,下面是很可能缺少的:
1. bison
2. flex
3. makeinfo (应该是texinfo)
4. automake
5. libtool
6. cvs
7. cur
8. gcj
9. g++ 等,
通过之后, make install
然后,设置系统的环境:
sudo gedit /etc/profile
在最后加入:
export PATH=$PATH:/home/wsn/my_crosstool-ng/bin
退出,生效环境profile:
source /etc/profile
把crosstool-ng-1.9.0/sample/arm-unknown-eabi/crosstool.config
拷贝到my_cosstool-ng下,重命名为.config
这样,需要重新打开一个termial,输入 ct-ng help,应该有以下类似输出:
GNU Make 3.81Copyright (C) 2006 Free Software Foundation, Inc.This is free software; see the source for copying conditions.There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE.This program built for i486-pc-linux-gnu
说明关键的一步已经成功了,接下来进行相关配置了。
cd /home/wsn/my_crosstool-ngct-ng menuconfig
进行工具链的menuconfig
根据自己的目标CPU进行设置,比如CPU 是s3c2440的话,主要配置一下几个选项就行了,其他默认
Target options --> arm
Architecture level --> armv4t
Floating point --> software
其中:
Tuple's vendor string 中可以更改自己平台的名称,默认是unknown
配置好后最后保存:
Save an Alternate Configuration file
接下来就是漫长的编译了
ct-ng build
这个过程太煎熬了,当时耗时3个多小时, 真是汗颜...
wsn@wsn-laptop:~/bellsent/my_crosstool-ng$ ct-ng build[INFO ] Performing some trivial sanity checks[INFO ] Build started 20120617.213312[INFO ] Building environment variables[EXTRA] Preparing working directories[EXTRA] Installing user-supplied crosstool-NG configuration[EXTRA] =================================================================[EXTRA] Dumping internal crosstool-NG configuration[EXTRA] Building a toolchain for:[EXTRA] build = i686-pc-linux-gnu[EXTRA] host = i686-pc-linux-gnu[EXTRA] target = arm-Davinci-linux-gnueabi[EXTRA] Dumping internal crosstool-NG configuration: done in 0.14s (at 00:02)...
最后编译得出的交叉工具在../x-tools/下
相关参考:
http://blog.csdn.net/HumorRat/article/details/5615298
- Linux:crosstool-ng制作自己的交叉编译工具
- crosstool-ng制作交叉编译工具链(powerpc-linux)
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- 用crosstool-ng构建自己的交叉编译工具链
- 利用crosstool-ng-1.14.0制作交叉编译工具链
- crosstool-ng制作交叉编译工具链(armv6)
- crosstool-ng-1.20.0制作交叉编译工具
- 使用crosstool-ng制作交叉编译工具链
- cortexA8交叉编译工具制作——crosstool-ng
- 用crosstool-ng建立自己的ARM交叉编译工具链 (适用于S3C6410以及其它处理器)
- 用crosstool-ng建立自己的ARM交叉编译工具链 (适用于S3C6410以及其它处理器)
- 用crosstool-ng建立自己的ARM交叉编译工具链
- 6410 crosstool-ng配置交叉编译工具
- [Linux]:crosstool制作arm-linux交叉编译工具链
- WLAN Roaming - the basics Even if you keep the same IP address, things get complicated.
- (深入)进程上下文和中断上下文
- Silverlight 引路蜂二维图形库示例:多义线和多边形
- 802.11 WLAN 中省电(Power Saving)的一些参数解说
- Block Communications between Wireless PCs (Privacy Separator)
- Linux:crosstool-ng制作自己的交叉编译工具
- 关于指令test ecx,ecx
- Java ME引路蜂地图开发示例:地图平移
- SyntaxError: Non-ASCII character Python、Unicode和中文
- 驱动开发之二:尝试挂接file system
- Android OpenGL ES->GLSurfaceView
- 驱动开发之三:简单的什么也不做的驱动程序筐架
- iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- 驱动开发之四:NDIS过滤钩子驱动实现ip包过滤