- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1交叉编译工具链建立实验
实验1
1.1
■
■
■
?交叉编译工具链建立实验实验目的熟悉Linux操作系统;掌握交叉编 译工具链的建立过程;掌握通过gdb调试程序的方法;掌握makefile文件 的写法。
1.2
■
?实验设备硬件:PC机;软件:Windows操作系统、VMware虚拟机 和Linux操作系统,或直接安装于硬盘的Linux操作系统,arm-linux-gcc安 装文件。
1.3
■
?
■
?实验内容安装Linux操作系统;建立交叉编译工具链;编写解决八臭 后问题的程序。
1.4实验原理 1.4.1交叉编译工具链的简介
交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同 的另一种平台上的程式,例如我们试验屮在Linux平台上编译出能运行在 ARM为内核的CPU平台上的程式,编译得到的可执行文件是不能在Linux 环境下运行的,必须放到ARM平台上才能运行。这种方法在异平台移植 和嵌入式研发时非常有用的。
交叉编译工具链是由编译器、连接器和解释器组成的综合研发环境, 交叉编译工具链主要由binutils、gcc和glibc三个部分组成。有时出于减小 libc库大小的考虑,也能用别的C库来代替glibc,例如uClibc、dietlibc和 n ewlibo
1.4.2交叉编译工具链部分组件的介绍
GCC属于GUN工具链中的编译开发工具,它可以把源程序编译为可执 行文件。GCC是支持支持Ada语言、C++语言、Java语言、ObjectiveC语言、 Pascal语言、COBOL语言,以及支持函数式编程和逻辑编程的Mercury语 言,等等的编译器。GCC是可以在多种硬体平台上编译出可执行程序的超 级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。GCC 主要包括二
?cpp: GNUC编译器的预处理器
?gcc:符合ISO标准的C编译器
?g++:基本符合ISO标准的C++编译器
?gcj: GCC 的 java 前端
?gnat: GCC 的 GNUADA95 的前端
binutils是一组二进制工具程序集合,是辅助GCC的主要软件,其中主 要包括:?as: GNU汇编器
■
■
■
■
■
■
■
?
■
■
?ld: GNU链接器ar:创建归档文件,向库中添加/提取obj文件nm: 列出obj文件中的符号objcopy:复制和转化obj文件objdump:显示对象 文件的信息ranlib:根据归档文件中的内容建立索引readelf:显示elf格式 执行文件中的各种信息size:显示object文件和执行文件各段的总大小 strings:显示文件中可以打印的字符strip:去掉执行文件中多余的信息(如 调试信息)gprof:用来显示图表档案数据。
1.4.3Linux常用开发工具的介绍和使用
上面我们对交叉编译工具链做了概述,下面我们再给出linux下常用开 发工具的介绍和使用。
vi(vim)
vi是linux下一种功能强大的,快速命令驱动的全屏幕编辑器,可以类 比DOS的edit。vi有三种操作模式:一是命令模式(或称指令模式),在 此模式下的按键当作指令来处理;一种是输入模式(或称插入模式),此 模式的按键作为真正的输入;另外一种是底行模式,在该模式下,光标位 于屏幕的底行。用户可以进行文件保存或退岀操作,也可以设置编译环境, 如寻找字符串、列出行号等。初始启动vi时处于命令模式。表1丄中列出 了 vi (vim)常用的命令。
r
x
dd
:5d
o
u
yy
p
rm修改光标所在处的字符删除光标处的一个字符删除光标所在的整 行内容删除第五行在光标所在行下增加一行并进入输入模式撤销最后一 个更改操作复制当前行粘贴当前行替换当前字符为叽替换后仍处于命令 模式下
表l.lvi (vim)常用命令
vi的命令有很多,我们需耍经常使用来熟悉这些命令,当你得心应手 的时候你会发现vi相比其他文本编辑器有很多优点,是一个非常高效的文
本编辑器。
arm-li nu x-gcc
我们需耍编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcco下面将arm-linux-gcc编译工具的一些常用命令参数介绍给 大家。首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程 分为四个阶段:
预处理(Pre-Processing)
编译(Compiling)
汇编(Assembling)
链接(Linking) Linux程序员可以根据自己的需要让GCC在编译 的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最 后牛成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码 来为今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活 而
文档评论(0)