人们通常利用 make 工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。
Makefile
make 工具通过一个称为 makefile 的文件来完成并自动维护编译工作。makefile 需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。当修改了其中某个源文件时,如果其他源文件依赖于该文件,则也要重新编译所有依赖该文件的源文件。
Makefile基本规则
target...:prerequisites...
command
...
目标(target)
:程序产生的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean”。
依赖(prerequisites)
:是用来产生目标的输入文件,一个目标通常依赖于多个文件。
命令(command)
:是make执行的动作,一个可以有多个命令,每个占一行。注意:每个命令行的起始字符必须为TAB字符!
如果prerequisites中有一个或多个文件更新的话,command就要执行,这就是Makefile最核心的内容
最简单的Makefile例子
源文件有:
main.c
#include <stdio.h>
int main(){
int a1 = 10, a2 = 20;
Swap(a1, a2);
printf("swap value : %d ,%d",a1,a2);
return 0;
}
swap.h
#ifndef _SWAP_H_
#define _SWAP_H_
void Swap(int *a,int *b);
#endif
swap.c
#include