实验1交叉编译工具链建立实验

实验1交叉编译工具链建立实验

ID:31798090

大小:68.89 KB

页数:18页

时间:2019-01-18

实验1交叉编译工具链建立实验_第1页
实验1交叉编译工具链建立实验_第2页
实验1交叉编译工具链建立实验_第3页
实验1交叉编译工具链建立实验_第4页
实验1交叉编译工具链建立实验_第5页
资源描述:

《实验1交叉编译工具链建立实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验1交叉编译工具链建立实验实验11.1■■■?交叉编译工具链建立实验实验目的熟悉Linux操作系统;掌握交叉编译工具链的建立过程;掌握通过gdb调试程序的方法;掌握makefile文件的写法。1.2■?实验设备硬件:PC机;软件:Windows操作系统、VMware虚拟机和Linux操作系统,或直接安装于硬盘的Linux操作系统,arm-linux-gcc安装文件。1.3■?■?实验内容安装Linux操作系统;建立交叉编译工具链;编写解决八臭后问题的程序。1.4实验原理1.4.1交叉编译工具链的简

2、介交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程式,例如我们试验屮在Linux平台上编译出能运行在ARM为内核的CPU平台上的程式,编译得到的可执行文件是不能在Linux环境下运行的,必须放到ARM平台上才能运行。这种方法在异平台移植和嵌入式研发时非常有用的。交叉编译工具链是由编译器、连接器和解释器组成的综合研发环境,交叉编译工具链主要由binutils、gcc和glibc三个部分组成。有时出于减小libc库大小的考虑,也能用别的C库来代替glibc,例如uClibc、

3、dietlibc和newlibo1.4.2交叉编译工具链部分组件的介绍GCC属于GUN工具链中的编译开发工具,它可以把源程序编译为可执行文件。GCC是支持支持Ada语言、C++语言、Java语言、ObjectiveC语言、Pascal语言、COBOL语言,以及支持函数式编程和逻辑编程的Mercury语言,等等的编译器。GCC是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。GCC主要包括二?cpp:GNUC编译器的预处理器?gcc:符合ISO

4、标准的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格式执行文件中的各种信息

5、size:显示object文件和执行文件各段的总大小strings:显示文件中可以打印的字符strip:去掉执行文件中多余的信息(如调试信息)gprof:用来显示图表档案数据。1.4.3Linux常用开发工具的介绍和使用上面我们对交叉编译工具链做了概述,下面我们再给出linux下常用开发工具的介绍和使用。l.vi(vim)vi是linux下一种功能强大的,快速命令驱动的全屏幕编辑器,可以类比DOS的edit。vi有三种操作模式:一是命令模式(或称指令模式),在此模式下的按键当作指令来处理;一种是输入

6、模式(或称插入模式),此模式的按键作为真正的输入;另外一种是底行模式,在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退岀操作,也可以设置编译环境,如寻找字符串、列出行号等。初始启动vi时处于命令模式。表1丄中列出了vi(vim)常用的命令。rxdd:5douyyprm修改光标所在处的字符删除光标处的一个字符删除光标所在的整行内容删除第五行在光标所在行下增加一行并进入输入模式撤销最后一个更改操作复制当前行粘贴当前行替换当前字符为叽替换后仍处于命令模式下表l.lvi(vim)常用命令vi的命令有

7、很多,我们需耍经常使用来熟悉这些命令,当你得心应手的时候你会发现vi相比其他文本编辑器有很多优点,是一个非常高效的文本编辑器。2.arm-linux-gcc我们需耍编译出运行在ARM平台上的代码,所使用的交叉编译器为arm-linux-gcco下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段:(1)预处理(Pre-Processing)(2)编译(Compiling)(3)汇编(Assembling)(4)

8、链接(Linking)Linux程序员可以根据自己的需要让GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后牛成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。下面以文件example.c文件为例來说明它的命令用法:(1)arm・linux-gcc-oexampIeexampIe.c不加・c、・S、・E参数,编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。