Ch3_2 Makefile 和 gdb 2017-5-4 2复习与回顾? Linux 下C开发环境–头文件、静态库、动态库、系统调用? gcc 编译器?自动化编译工具 makefile 2 2017-5-4目录 1. makefile 自动化编译 2. gdb 调试 3 2017-5-4目录 1. makefile 自动化编译 2. gdb 调试 4 2017-5-4 makefile 示例 1. # This is a simple makefile example 2. program: 3. gcc – o program 4. : 5. gcc – c 6. gcc – c 7. gcc – c 8. clean: 9. rm – rf program * .o 5 ?一个包含 四个文件的简单 C语言程序,实现其自动化编译( P9 )。 2017-5-4 1. makefile 自动化编译 makefile 组成 makefile 规则 makefile 原理 6 2017-5-41、 Makefile 的组成? Makefile 里主要包含了五种类型的语句/行: 显式规则、隐式规则、变量定义、文件指示和注释?显式规则: 显式规则说明了如何生成一个或多的的目标文件。这是由 Makefile 的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令;?隐式规则: 由于我们的 make 有自动推导的功能,所以隐式的规则可以让程序员比较简略地书写 Makefile ,这是由 make 所支持的; 7 2017-5-4 Makefile 的组成?变量的定义: 在 Makefile 中可定义一系列的变量,变量一般都是字符串,有点象 C 语言中的宏,当 Makefile 被执行时,其中的变量都会被扩展到相应的引用位置上;?文件指示:其包括了三个部分, (1)在一个 Makefile 中引用另一个 Makefile ,就像 C 语言中的 include 一样; (2)根据某些情况指定 Makefile 中的有效部分,就像 C 语言中的预编译#if 一样; (3)定义一个多行的命令。 8 2017-5-4 Makefile 的组成?注释: Makefile 中只有行注释,和 UNIX/Linux 的 Shell 脚本一样,其注释是用“#”字符,作用与 C/C++ 中的“//”一样?如果你要在你的 Makefile 中使用“#”字符,可以用反斜框进行转义,如: “\#” 9 2017-5-4 2. Makefile 规则?规则说明如何和何时执行动作。有的规则看起来很复杂,但都符合下述模式。 makefile 中的规则样式如下: TARGET... : DEPENDENCIES ... COMMAND ... ?目标( TARGET )是程序产生的文件,如可执行文件和目标文件; ?目标也可以是要执行的动作,如“ clean ”。 10
7_makefile与gdb调试课稿 来自淘豆网m.daumloan.com转载请标明出处.