及gcc编译选项培训课件

及gcc编译选项培训课件

ID:13923909

大小:301.00 KB

页数:46页

时间:2018-07-25

及gcc编译选项培训课件_第1页
及gcc编译选项培训课件_第2页
及gcc编译选项培训课件_第3页
及gcc编译选项培训课件_第4页
及gcc编译选项培训课件_第5页
资源描述:

《及gcc编译选项培训课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MakefileGCC编译选项培训Makefile简介:MAKE工具是一般C编译器都提供的一个编译控制工具,它可以自动确定程序的哪些部分需要重新编译,并执行命令重新编译它们。缺省情况下,GNUmake自动使用一个构造文件makefile或Makefile来了解编译和链接一个程序的规则及方法。如果用户需要指定自己的构造文件,需要使用命令:make–fXXXX其中XXXX就是用户所需要指定的构造文件名称。Makefile及GCC编译选项培训Makefile的基本规则:简单的构造文件包含如下形式的规则:TARGET...:DEPENDENCIES...COMMAND..

2、....TARGET一般是程序生成的文件名,如可执行文件或目标文件。它也可以是某个要执行的操作的名称,比如“clean”。DEPENDENCIES是生成目标所用的输入文件。一个目标可以依靠多个文件。COMMAND是make要执行的操作。一条规则可以包含多个命令,一个命令占一行。注意:在每行命令前需要有一个tab字符。Makefile及GCC编译选项培训Makefile里的规则解释了如何以及何时重新构造作为特定规则的目标的特定文件。它也可以解释如何以及何时执行一个操作。构造文件可以包含规则以外的其它文本,但简单的构造文件只需要包含规则。如果目标是文件,那么任何一个依

3、靠文件发生改变,它都需要重新编译或重新链接。自动生成的依靠文件本身首先被更新。需要记住的是,make并不知道命令是如何工作的,它只是在目标需要更新时按照指定的规则执行命令。Makefile及GCC编译选项培训Makefile中变量的使用:objects=main.okbd.ocommand.odisplay.oinsert.osearch.ofiles.outils.oedit:$(objects)cc-oedit$(objects)用包含“+=”的一行可以为变量附加文本,如:objects=main.ofoo.obar.outils.oobjects+=ano

4、ther.o等同于:objects=main.ofoo.obar.outils.oobjects:=$(objects)another.o如果变量此前没有定义,“+=”与普通的“=”相同。但在此前有定义的情况下,“+=”按照变量初始定义的类型扩展。Makefile及GCC编译选项培训make使用的自动变量:$@规则目标的文件名。如果目标是档案文件的一个成员,$@就是档案文件的名称。$%当目标是档案文件的一个成员时,$%是该成员的名称。若目标不是档案文件的一个成员,$%为空。$<第一个依靠文件的名称。$?以空格隔开的比目标新的所有依靠文件名。在依靠文件是档案文件的成

5、员时,只使用成员的名称。$^以空格隔开的所有依靠文件名。在依靠文件是档案文件的成员时,只使用成员的名称。无论一个依靠文件出现过多少次,$^值中只包含其名称的一个拷贝。Makefile及GCC编译选项培训变量使用范例:foo:foo.c-lcursescc$^-o$@会解释为以下的命令ccfoo.c/usr/lib/libcurses.a-ofoo我们不推荐使用自动变量,虽然这样可以简化makefile的写作。参考文档Makefile及GCC编译选项培训GCC简介:现在多个版本的编译器(C、C++、Objective-C、Ada、Fortr

6、an和Java)已经被集成在一起,因此我们将GCC称为“GNU编译器集”(GNUCompilerCollection)。GCC是GNU编译器集的常用缩写,它既是该编译器最普遍的名称,也是在强调用来编译C程序时所用的名称(以前代表“GNUC编译器”的缩写)。在特指C++编译时,该编译器常被称为“G++”。因为只存在一个编译器,所以把它称为“GCC”也是准确的。但“G++”更多地用于强调编译的是C++程序。在我们谈论Ada编译的时候,也因此常把编译器称作“GNAT”。我们用“GCC”指代整个编译系统,尤其是编译器中与编程语言无关的那部分。Makefile及GCC编译选

7、项培训编译开关使用说明:运行GNUCC一般会完成预处理、编译、汇编和连接四个过程。“全局开关”允许在其中某个中间阶段停止这一过程。例如,“-c”开关就要求不进行连接,这样得到的输出就是汇编程序输出的目标文件。其它开关则是传递给其中某一处理阶段的。某些开关是控制预处理器的,某些是控制编译器本身的。还有一些控制汇编程序和连接程序的开关,很少会被使用到。Makefile及GCC编译选项培训全局开关:编译涉及的四个阶段依次为:预处理、完全编译、汇编和链接。前三个阶段应用于一个单独的源文件,最后生成一个目标文件;连接把所有目标文件(新编译的以及在输入里指定的那些文件)结合成

8、一个可执行

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

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

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