uClinux下应用程序开发.ppt

uClinux下应用程序开发.ppt

ID:51598080

大小:257.55 KB

页数:53页

时间:2020-03-25

uClinux下应用程序开发.ppt_第1页
uClinux下应用程序开发.ppt_第2页
uClinux下应用程序开发.ppt_第3页
uClinux下应用程序开发.ppt_第4页
uClinux下应用程序开发.ppt_第5页
资源描述:

《uClinux下应用程序开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、开发工具GNU的使用GNU软件包括C编译器GCC,C++编译器G++,汇编器AS,链接器LD,二进制转换工具(OBJCOPY,OBJDUMP),调试工具(GDB,GDBSERVER,KGDB)和基于不同硬件平台的开发库。在GNUGCC支持下用户可以使用流行的C/C++语言开发应用程序,满足生成高效率运行代码、易掌握的编程语言的用户需求。GNU开发工具都是采用命令行的方式,用户掌握起来相对比较困难,不如基于Windows系统的开发工具好用,但是GNU工具的复杂性是由于它更贴近编译器和操作系统的底层,并提供了更大的灵活性。一旦学习和掌握了相关工具后,就了解了系统设计的基础知识

2、。运行于Linux操作系统下的自由软件GNUgcc编译器,不仅可以编译Linux操作系统下运行的应用程序,还可以编译Linux内核本身,甚至可以作交叉编译,编译运行于其它CPU上的程序。所以,在进行嵌入式系统应用程序开发时,这些工具得到了日益广泛的应用。GCC编译器GCC是GNU组织的免费C编译器,Linux的很多发布缺省安装的就是这种。很多流行的自由软件源代码基本都能在GCC编译器下编译运行。所以掌握GCC编译器的使用无论是对于编译系统内核还是自己的应用程序都是大有好处的。下面通过一个具体的例子,学习如何使用GCC编译器。在Linux操作系统中,对一个用标准C语言写的源

3、程序进行编译,要使用GNU的gcc编译器。例如下面一个非常简单的Hello源程序(hello.c):/***********************************FileName:hello.c*Description:introducehowtocompileasourcefilewithgcc*Author:XueyuanNie*Date:*********************************/voidmain(){printf("Hellotheworld");}要编译这个程序,我们只要在Linux的bash提示符下输入命令:$gcc-oh

4、ellohello.cgcc编译器就会生成一个hello的可执行文件。在hello.c的当前目录下执行./hello就可以看到程序的输出结果,在屏幕上打印出“Hellotheworld”的字符串来。命令行中gcc表示是用gcc来编译源程序;-ooutputfilename选项表示要求编译器生成文件名为outputfilename的可执行文件,如果不指定-o选项,则缺省文件名是a.out。在这里生成指定文件名为hello的可执行文件,而hello.c是我们的源程序文件。gcc是一个多目标的工具。gcc最基本的用法是:gcc[options]file...其中的option是

5、以-开始的各种选项,file是相关的文件名。在使用gcc的时候,必须要给出必要的选项和文件名。gcc的整个编译过程,实质上是分四步进行的,每一步完成一个特定的工作,这四步分别是:预处理,编译,汇编和链接。它具体完成哪一步,是由gcc后面的开关选项和文件类型决定的gcc编译器有许多选项,但对于普通用户来说只要知道其中常用的几个就够了。在这里为读者列出几个最常用的选项:-o选项表示要求编译器生成指定文件名的可执行文件;-c选项表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由.c或.cc变成.o的目标文件;-g选项要求编译器在编译的时候提供以后对程

6、序进行调试的信息;-E选项表示编译器对源文件只进行预处理就停止,而不做编译,汇编和链接;-S选项表示编译器只进行编译,而不做汇编和链接;-O选项是编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高;-Wall选项指定产生全部的警告信息。如果你的源代码中包含有某些函数,则在编译的时候要链接确定的库,比如代码中包含了某些数学函数,在Linux下,为了使用数学函数,必须和数学库链接,为此要加入-lm选项。也许有读者会问,前面那个例子使用printf函数的时候为何没有链接库呢?在gcc中对于一些常用函数的实现,gcc编译器会自动去链接一些常

7、用库,这样用户就没有必要自己去指定了。有时候在编译程序的时候还要指定库的路径,这个时候要用到编译器的-L选项指定路径。比如说我们有一个库在/home/hoyt/mylib下,这样我们编译的时候还要加上-L/home/hoyt/mylib。对于一些标准库来说,没有必要指出路径。只要它们在起缺省库的路径下就可以了,gcc在链接的时候会自动找到那些库的GNU编译器生成的目标文件缺省格式为elf(executivelinkedfile)格式,这是Linux系统所采用的可执行链接文件的通用文件格式。elf格式由若干段(section)组

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

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

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