预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共53页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

开发工具GNU的使用GNU开发工具都是采用命令行的方式,用户掌握起来相对比较困难,不如基于Windows系统的开发工具好用,但是GNU工具的复杂性是由于它更贴近编译器和操作系统的底层,并提供了更大的灵活性。一旦学习和掌握了相关工具后,就了解了系统设计的基础知识。运行于Linux操作系统下的自由软件GNUgcc编译器,不仅可以编译Linux操作系统下运行的应用程序,还可以编译Linux内核本身,甚至可以作交叉编译,编译运行于其它CPU上的程序。所以,在进行嵌入式系统应用程序开发时,这些工具得到了日益广泛的应用。GCC编译器例如下面一个非常简单的Hello源程序(hello.c):/***********************************FileName:hello.c*Description:introducehowtopileasourcefilewithgcc*Author:XueyuanNie*Date:*********************************/voidmain(){printf("Hellotheworld\n");}命令行中gcc表示是用gcc来编译源程序;-ooutputfilename选项表示要求编译器生成文件名为outputfilename的可执行文件,如果不指定-o选项,则缺省文件名是a.out。在这里生成指定文件名为hello的可执行文件,而hello.c是我们的源程序文件。gcc是一个多目标的工具。gcc最基本的用法是:gcc[options]file...其中的option是以-开始的各种选项,file是相关的文件名。在使用gcc的时候,必须要给出必要的选项和文件名。gcc的整个编译过程,实质上是分四步进行的,每一步完成一个特定的工作,这四步分别是:预处理,编译,汇编和链接。它具体完成哪一步,是由gcc后面的开关选项和文件类型决定的如果你的源代码中包含有某些函数,则在编译的时候要链接确定的库,比如代码中包含了某些数学函数,在Linux下,为了使用数学函数,必须和数学库链接,为此要加入-lm选项。也许有读者会问,前面那个例子使用printf函数的时候为何没有链接库呢?在gcc中对于一些常用函数的实现,gcc编译器会自动去链接一些常用库,这样用户就没有必要自己去指定了。有时候在编译程序的时候还要指定库的路径,这个时候要用到编译器的-L选项指定路径。比如说我们有一个库在/home/hoyt/mylib下,这样我们编译的时候还要加上-L/home/hoyt/mylib。对于一些标准库来说,没有必要指出路径。只要它们在起缺省库的路径下就可以了,gcc在链接的时候会自动找到那些库的当改变了源文件hello.c后,需要重新编译它:$gcc-chello.c然后重新链接生成:$gcc–ohello.o对于本例,因为只含有一个源文件,所以当改动了源码后,进行重新的编译链接的过程显得并不是太繁琐,但是,如果在一个工程中包含了若干的源码文件,而这些源码文件中的某个或某几个又被其他源码文件包含,那么,如果一个文件被改动,则包含它的那些源文件都要进行重新编译链接,工作量是可想而知的。GNU提供了使这个步骤变得简单的工具,就是下面要介绍给大家的GNUMake工具Unix系统下标志位flags选项及其含义为:-ffile指定file文件为描述文件,如果file参数为'-'符,那么描述文件指向标准输入。如果没有'-f'参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。在Linux中,GNUmake工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索makefile文件。-i忽略命令执行返回的出错信息。-s沉默模式,在执行之前不输出相应的命令行信息。-r禁止使用隐含规则。-n非执行模式,输出所有执行命令,但并不执行。-t更新目标文件。-qmake操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息。-p输出所有宏定义和目标文件描述。-dDebug模式,输出有关文件和检测时间的详细信息。Linux下make标志位的常用选项与Unix系统中稍有不同,下面只列出了不同部分:-cdir在读取makefile之前改变到指定的目录dir。-Idir当包含其他makefile文件时,利用该选项指定搜索目录。-hhelp文挡,显示所有的make选项。-w在处理makefile之前和之后,都显示工作目录。makefile基本结构这是一个最简单的makefile,make从条规则开始,executable是makefile最终要生成的目标文件。给出的规则说明executable依赖于两个目标文件main.o和io.o,只要execu