linux应用程序设计--Makefile工程管理

Makefile文件描述了整个工程的编译、链接等规则。包括:工程中哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件、如何产生最终的可执行文件。

Makefile相关术语

1.规则:用于说明如何生成一个或多个目标文件。在Makefile中,规则的顺序非常重要,因为Makefile中只应该有一个最终目标,其他目标都是为了生成该目标而产生的中间文件,所以一般第一条规则中的目标将被确认为最终的目标。

规则格式如下:targets : prerequisites

       command 

       目标  依赖  命令

例如:main.o : main.c

   gcc -c main.c    说明:命令需要以【TAB】键开始

2.编译程序时,使用make命令,将默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为两者时,可通过如下命令指定:

make -f filename

3.伪目标:Makefile中把那些没有任何依赖,只有执行动作的目标称为“伪目标”(phony targets)。

伪目标格式如下:.PHONY : clean   说明:.PHONY将clean目标声明为伪目标

        clean :

          rm -f hello main.o 

4.变量

变量使用例程:obj = main.o fun1.o fun2.o

       hello : $(obj)

       gcc $(obj) -o hello

5.Makefile默认变量

$^ : 代表所有的依赖文件

$@ : 代表目标

$< : 代表第一个依赖文件

使用例程:hello : main.o fun1.o fun2.o

     gcc $^ -o $@

6.Makefile中“#”字符后的内容为注释;“@”字符为取消回显,不显示Makefile中的命令。

 

作者:Wcat
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/wcat/p/10067602.html