- Makefile
- make工具规则
- Makefile语法
- TARGET
- PREREQUISITES
- COMMAND
- makefile编写
Linux下使用GNU make来构建和管理代码工程。
源码包的安装中经常会使用。
Makefile文件:描述了整个工程的编译、链接、安装等规则。
包括:
①:工程中的哪些源文件需要编译以及如何编译。
②:需要创建那些库文件以及如何创建这些库文件。
③:如何最后产生我们想要得可执行文件。
好处:使用一行命令来完成“自动化编译”,极大提高了效率。
make工具规则当使用make工具进行编译时,工程中以下几种文件在执行make时将会被编译(重新编译):
1.所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;
2.每一个在上次执行make之后修改过的C源代码文件在本次执行make时将会被重新编译;
3.头文件在上一次执行make之后被修改。则所有包含此头文件的C源文件在本次执行make时将会被重新编译。
一个简单的Makefile描述规则组成:
TARGET... : PREREQUISITES... COMMAND ...TARGET
TARGET:规则的目标。
通常是最后需要生成的文件名或者为了实现这个目的而必需的中间过程文件名。
可以是.o文件,也可以是最后的可执行程序的文件名等。
另外,目标也可以是一个make执行的动作的名称,如目标“clean”,我们称这样的目标是“伪目标”。
PREREQUISITES:规则的依赖。
生成规则目标所需要的文件名列表。通常一个目标依赖于一个或者多个文件。
COMMAND:规则的命令行。
是规则所要执行的动作(任意的shell命令或者是可在shell下执行的程序)。它限定了make执行这条规则时所需要的动作。
一个规则可以有多个命令行,每一条命令占一行。
注意:
每一个命令行必须以[Tab]字符开始,[Tab]字符告诉make此行是一个命令行。
make按照命令完成相应的动作。这也是书写Makefile中容易产生,而且比较隐蔽的错误。
最简单的makefile文件可以命名为 makefile 或 Makefile。
注意:不可以用 makeFile。
创建 main.c 文件
#include#include "print.h" int main() { hello(); return 0; }
创建 print.c 文件
#include "print.h" void hello(void) { puts("hello world C++n"); }
创建 print.h 文件
void hello(void);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)