目录 一:Makefile 基本规则 1.1 示例 1.2 隐式规则 1.3 伪目标 1.4 搜索源文件 二:变量 2.1 使用变量定义变量值 2.2 追加变量 三:条件判断 四:函数 Linux 下 Makefile 总结 —— 一步 MakeFile 可以看做是一种简单的编程语言,其诞生的本质目的是实现自动化编译。 以 Linux 下 gcc-c 编译器为例,编译一个 c 语言程序需要经过以下几个步骤: 1.将 c 语言源程序预处理,生成.i 文件; 2.预处理后的.i 语言编译成汇编语言,生成.s 文件; 3.汇编语言经过汇编,生成目标文件.o 文件; 4.将各个模块的.o 文件链接起来,生成一个可执行程序文件。 我们知道,在 Visual C++6.0 中,可以新建一个工程,在一个工程当中能够包含若干个 c 语言文件,则编译的时候直接编译整个工程便可。Linux 下无法为多个 c 语言文件新建工程,但可以通过 MakeFile 实现它们的整合编译。 如上 gcc-c 编译步骤,如果使用 Makefile 则过程为: .C 文件——>.o 文件——>可执行文件 当然,Makefile 中也加入了自己的设置变量方法与集成了一些函数,能够更有效地方便用户使用。 /**************************分隔符********************************/ 一:Makefile 基本规则 1.1 示例 target ... : prerequisites ... command ... ... target 也就是一个目标文件,可以是 Object File,也可以是执行文件。 prerequisites 就是,要生成那个 target 所需要的文件或是目标。 command 也就是 make 需要执行的命令。(任意的 Shell 命令) 为了方便理解,我们来看一个示例: /*Makefile 示例*/ edit : main.o kbd.o command.o display.o / insert.o search.o files.o utils.o gcc -o edit main.o kbd.o command.o display.o / insert.o search.o files.o utils.o main.o : main.c defs.h #生成 main.o gcc -c main.c kbd.o : kbd.c defs.h command.h #生成 kdb.o gcc -c kbd.c command.o : command.c defs.h command.h #生成 command.o gcc -c command.c display.o : display.c defs.h buffer.h #生成 display.o gcc -c display.c insert.o : insert.c defs.h buffer.h #生成 insert.o gcc -c insert.c search.o : search.c defs.h buffer.h #生成 search.o gcc -c search.c files.o : fil...