TQ2440 学习笔记—— 6、自己制作工具链

(韦东山——嵌入式Linux 应用开发完全手册)

自己编译工具链:

如果要基于gcc 和glibc 来制作工具链,可以使用crosstool 来进行编译;

如果要基于gcc 和uClibc 来制作工具链,可以使用buildroot 来进行编译。

uClibc 比 glibc 小,在已有的接口上是兼容的,更适用于嵌入式操作系统。但是uClibc 并没有包括glibc 中的所有接口实现,因此有些应用可能在uClibc 中不能编译。

基于这个原因,采用gcc ,当对系统比较熟悉后,或者在开发资源很瘦限制的产品时,可以使用uClibc。

使用crosstool -0.43.tar.gz 工具来编译工具链,它运行时,会自动从网上下载源码,然后编译,当然我们也可以自己下载源码,在运行crosstool。crosstool 官方网站为http://kegel.com/crosstool/,可以参考其中的crosstool-how to .html 选择、配置、编译工具链。

步骤:

一、修改crosstool 脚本

a、执行以下命令进行解压缩

$ tar xzf crosstool-0.43.tar.gz    【为.gz文件,使用gzip方式处理,即用xzf】

b、打补丁

把它复制到crosstool 的补丁目录下:

命令  $ cp glibc-2.3.6-version-info.hr_err.patch 
crosstool-0.43/patchs/glibc-2.3.6/

然后将执行crosstool-0.43 目录下的demo-arm-softfloat.sh 脚本来进行编译,内容如下:

(注意:关于VI 中显示行号的方法:在命令行模式下(也有称为尾行模式的)

1、显示当前行行号,在VI的命令模式下输入——:nu

2、显示所有行号,在VI的命令模式下输入——:set nu)

第7行的TARRBALLS_DIR 表示源码存放位置。

第8行的 RESULT_TOP 表示编译结果存放的位置。

第10行的GCC_LANGUAGES 表示制作出来的工具链支持C、C++语言,如果要支持其他语言,可以在里面增加。比如下面一行表示支持Java:GCC_LANGUAGES = " c, c++,java"

第26~29行可知,可以选择多种gcc、glibc 版本。我们选择gcc-3.4.5 和 glibc-2.3.6。

执行demo-arm-softfloat.sh 脚本后,它将根据arm-softfloat.dat
、gcc-3.4.5-glibc-2.3.6.dat 这两个文件中定义的环境变量调用all.sh 脚本进行编译。

gcc-3.4.5-glibc-2.3.6.dat  文件指明了要下载或使用的文件。

需要更改demo-arm-softfloat.sh、arm-softfloat.sh、all.sh 这3个文件。

1、修改demo-arm-softfloat.sh,修改后的内容如下:

2、修改arm-softfloat.dat,修改如下

TARGET=arm-softfloat-linux-gnu 改为:  TARGET=arm--linux

它表示编译出来的工具样式为arm-linux-gcc、arm-linux-ld等,这是常用的名字。

3、修改all.sh。

如果现在就执行demo-arm-softfloat.sh ,最终结果将存放在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux 目录下。修改all.sh可以改变目录。

比如把它改为/work/tools/gcc-3.4.5-glibc-2.3.6

PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO/$TARGET}

改为

PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO}

二、编译、安装工具链

执行以下命令:

$ cd crostool-0.43/

$  ./ demo-arm-softfloat.sh

编译2、3个小时后,将在/work/tools/目录下生成gcc-3.4.5-glibc-2.3.6 子目录,交叉编译器、库、头文件都包含在里面。设置PATH 环境变量即可使用。

使用下面命令测评以下:

$ arm-linux-gcc -v

按照流程走了一遍,还是挺有收获的!完毕!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 05:25:50

TQ2440 学习笔记—— 6、自己制作工具链的相关文章

Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程

Ubuntu 编译 ARM-Linux-Gcc 工具链 -- 通过crosstool-NG制作工具链

1.手动下载制作过程中所需要的包,节省时间 所用包如下(不同版本所有包版本有所不同) libtool-2.4.6 linux-3.2.87 gmp-6.1.2 mpfr-3.1.5 isl-0.16.1 mpc-1.0.3 libelf-0.8.13 expat-2.2.0 ncurses-6.0 libiconv-1.15 gettext-0.19.8.1 binutils-2.28 gcc-5.4.0 glibc-2.25 duma_2_5_15 gdb-7.12.1 ltrace-0.7.

Java程序员的JavaScript学习笔记(9—— jQuery工具方法)

计划按如下顺序完成这篇笔记: 1.    理念. 2.    属性复制和继承. 3.    this/call/apply. 4.    闭包/getter/setter. 5.    prototype. 6.    面向对象模拟. 7.    jQuery基本机制. 8.    jQuery选择器. 9.    jQuery工具方法. 10.    jQuery-在"类"层面扩展. 11.    jQuery-在"对象"层面扩展. 12.    jQuery-扩

linux 学习笔记3 dd制作ISO文件和数据备份及复制

dd命令制作光盘映像文件 [[email protected] /]$ dd if=/dev/cdrom of=/2015/1.iso  执行命令 8502692+0 records in 8502692+0 records out 4353378304 bytes (4.4 GB) copied, 191.628 s, 22.7 MB/s [[email protected] /]$ cd 2015 [[email protected] 2015]$ ll  查询结果 total 425135

Java基础学习笔记十一 Eclipse开发工具

Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是Eclipse进行开发. Eclipse的下载.安装.卸载 下载 http://www.eclipse.org 安装 (只需要解压后就能使用) 卸载(只需要将文件夹删除就可以了) 开发软件的安装目录中,尽量不要出现空格与中文 Eclipse的使用 使用步骤: ?1.开启,选择工作空间,工作空间指的是将来编写的java源文件存放的位置.如下图: 下图中的复选框如果选中,表示使用

TQ2440学习笔记——Linux上I2C驱动的两种实现方法(1)

作者:彭东林 邮箱:[email protected] 内核版本:Linux-3.14 u-boot版本:U-Boot 2015.04 硬件:TQ2440 (NorFlash:2M   NandFlash:256M  内存:64M) 摘要 这里并不深入分析Linux下I2C驱动的实现,只是以TQ2440硬件平台为例分析I2C驱动的两种方法. 第一种方法: 使用S3C2440自带的I2C控制器实现,这个kernel已经支持,我们只需要配置即可. 第二种方法: 使用GPIO模拟,这个在kernel中

OpenStack学习笔记(一)----安装虚拟化工具

下面的命令运行在操作系统Ubuntu 14.04上. 在开源软件里面,主要是采用KVM和Xen.尽管OpenStack对KVM和Xen都支持,但是OpenStack对KVM的支持明显要比Xen做得好,所以这里我们选择的虚拟化工具为KVM. 基于内核的虚拟机KVM(Kernel-Based Virtual Machine)需要两个条件:硬件支持全虚拟化,操作系统为Linux. libvirt是一个管理各种不同的Hypervisor的一个工具集,并且能够提供一个统一的API来支持上层应用.它是一个软

cocos2d-x学习笔记——Csv文件读取工具

在一个游戏中,通常会有很多怪物,以及怪物的生命值,魔法值等属性数据,这些数据不可能在代码里面写死,一般都会用配置文件来保存,使用时再加载到内存. 我们常用的配置文件是CSV文件,即逗号分隔值(Comma-Separated Values),如下图所示. 今天,我就来介绍一个来读取CSV文件的工具类--MyCsvUtil. 在接受读取CSV文件工具类之前,先介绍一个读取字符串的工具类--StringUtil. //头文件StringUtil.h #ifndef __StringUtil_H_ #d

学习笔记之文本处理工具

Linux下有很多文本处理工具,本文将介绍几款比较常用的文本处理工具,比如对文本查看的工具:cat和less,文本截取工具:head和tail,按列抽取文本工具:cut,按关键字查询文本工具:grep,下面将具体介绍各种工具的使用. 1.文本查看命令cat 用法: cat [OPTION]... [FILE]... cat命令一次性显示所有文本内容,也可以跟多个文件连起来显示,但是不能分页显示.cat常与重定向符配合使用,实现简单的文本编辑功能.cat可以跟一些选项实现不同的功能,如跟-n可以显