版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章创建嵌入式Linux交叉开发工具链6.1下载源文件6.2建立工作目录6.3输出环境变量6.4建立内核头文件6.5建立二进制工具6.6建立初始编译器6.7建立c库6.8建立全套编译器6.9完成工具链的设置6.10测试和验证交叉编译工具本章小结
6.1下 载 源 文 件
要想选用适当的版本,以保证建立的工具链可用,就必须找到适合主机和目标板的组合。这些可以自己测试,也可以从网上寻找已经测试过的版本组合,即binutils、gcc、glibc的版本组合。
6.2建立工作目录
本章所有的工作都在 /home/mxl/diliuzhang下面建立完成。
进入工作目录:
[root@localhostroot]#cd/home/mxl/diliuzhang
查看当前目录:
[root@localhostdiliuzhang
]#pwd
/home/mxl/diliuzhang
创建工具链文件夹:
[root@localhostdiliuzhang]#mkdirembedded-toolchains
6.3输出环境变量
输出如下的环境变量方便后面编译。
6.4建立内核头文件
内核头文件的配置是建立工具链的第一步。它与后面将要执行的其他步骤有着类似性,大多需要执行下面几步操作:
(1)解压缩包;
(2)为跨平台开发设定包的配置;
(3)编译包;
(4)安装包。
[root@localhostembedded-toolchains]#pwd
/home/mxl/diliuzhang/embedded-toolchains
[root@localhostembedded-toolchains]#cdkernel解压缩:
[root@localhostkernel]#tarxvzf../setup-dir/linux-2.4.21.tar.gz
[root@localhostkernel]#gunzip../setup-dir/patch-2.4.21-rmk1.gz
[root@localhostkernel]#cdlinux-2.4.21
给Linux内核打补丁:
[root@localhostlinux-2.4.21]#patch-p1<../../setup-dir/patch-2.4.21-rmk1配置:
[root@localhostlinux-2.4.21]#makeARCH=armCROSS_COMPILE=arm-linux-menuconfig
图6-1Linux2.4.21内核配置界面
6.5建立二进制工具
binutils是GNU工具之一,它包括连接器、汇编器和其他用于目标文件和档案的工具,它是二进制代码的处理维护工具。安装binutils工具包含的程序有addr2line、ar、as、c++filt、gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、strings、strip、libiberty、libbfd和libopcodes。图6-2编译成功后的结果图6-3验证binutils成功后的结果
6.6建立初始编译器
这一步的目的主要是建立arm-linux-gcc工具。注意,这个gcc没有glibc库的支持,所以只能用于编译内核、BootLoader等不需要c库支持的程序,后面创建c库也要用到这个编译器,所以创建它主要是为创建c库做准备,如果只想编译内核和BootLoader,那么安装完这个就可以到此结束。图6-4编译初始编译器错误示例图6-5编译初始编译器成功后的结果图6-6验证初始编译器成功后的结果
6.7建立c库
建立c库是最为繁琐的过程,目标板必须靠它来执行或者是开发大部分的应用程序。glibc套件常被称为c链接库,但是glibc实际产生很多链接库,其中之一是c链接库libc。因为嵌入式系统的限制,标准GNUc链接库显得太大,不适合应用在目标板上。图6-7编译glibc成功后的结果图6-8安装glibc成功后的结果
6.8建立全套编译器
由于第一次安装的gcc没有交叉glibc的支持,现在已经安装了glibc,因此需要重新编译来支持交叉glibc。并且上面的gcc也只支持C语言,现在可以让它同时支持C语言和C++语言。图6-9编译全套编译器成功后的结果
6.9完成工具链的设置
[root@localhostbuild-gcc]#cd$TARGET_PREFIX/bin
查看文件是否为二进制文件:
[root@localhostbin]#fileasargccldnmranlibstrip
查看缺省的搜寻路径:
[root@localhostbin]#arm-linux-gcc-print-search-dirs
转移文件:
[root@localhostbin]#mvasargccldnmranlibstrip
$PREFIX/lib/gcc-lib/arm-linux/2.95.3
[root@localhostbin]#forfileinasargccldnmranlibstrip
>do
>ln-s$PREFIX/lib/gcc-lib/arm-linux/2.95.3/$file
>done
6.10测试和验证交叉编译工具
下面编写一个简单的C程序,使用建立的工具链。图6-10交叉编译器编译示例本章小结
本章介绍了如何一步一步制作交叉开发工具链。要使制作成功,必须找到适合的主机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年客户关系管理系统项目营销方案
- 2026年企业让利促销联动项目投资计划书
- 2026年分区升降床架项目投资计划书
- 2026江苏徐州邳州市博育学校招聘各科教师备考题库含答案详解(满分必刷)
- 2026河北唐山古冶爱然医院招聘备考题库及答案详解(网校专用)
- 2026年医保准入后放量项目公司成立分析报告
- 2026贵州铝业集团双元新材料有限责任公司招聘6人备考题库含答案详解(a卷)
- 2026河南漯河市市直单位招聘公益性岗位人员20人备考题库有答案详解
- 2026湖北事业单位联考黄冈市团风县招聘100人备考题库带答案详解(综合卷)
- 2026重庆发展资产经营有限公司内部审计岗专项招聘1人备考题库附参考答案详解(预热题)
- 译林版初中教材词汇表(默写版)
- 个人借款合同范本(担保方式)
- 水工建筑物化学灌浆施工-规范
- 人教版四年级上册数学【选择题】专项练习100题附答案
- HGT 4205-2024《工业氧化钙》规范要求
- JJG 1132-2017热式气体质量流量计
- 喜家德营销方案
- 原发性纤毛运动障碍综合征教学演示课件
- 安全开发生命周期(SDLC)的实施
- 角向磨光机操作规程
- 高边坡工程施工安全总体风险评估报告
评论
0/150
提交评论