Makefile ------ .PHONY的作用】的更多相关文章

看下面的例子 Makefile文件 .PHONY: cleanclean: rm *.o 当Makefile文件所在目录有文件名为clean的文件,命令行“.PHONY: clean”又没添加的话,执行make clean是无效的 所以“.PHONY: clean”就是保证即使目录下有文件名为clean的文件,也能正常执行make clean…
make工具和makefile文件 make工具和makefile文件简介 make命令和makefile文件的结合提供了一个在项目管理领域十分强大的工具.它不仅常被用于控制源代码的编译和链接,而且还用于手册页的编写以及将应用程序安装到目标目录. makefile文件由一组依赖关系和规则构成.每个依赖关系又一个目标(即将要创建的文件)和一组该目标所依赖的源文件组成.而规则描述了如何通过这些依赖文件创建目标.一般来说,目标是一个单独的可执行文件. make命令会读取makefile文件的内容,它先…
case 1: Makefile clean: rm a environment_1 : There is only file a $ make clean clean a environment_2 : There are two file a and clean $ make clean make: 'clean' is up to date. can't clean a case 2: Makefile .PHONY: clean clean: rm a environment_1 : T…
单词phony (即phoney)的意思是:伪造的,假的.来自collins的解释是: If you describe something as phoney, you disapprove of it because it is false rather than genuine. 那么,在Makefile中,.PHONY后面的target表示的也是一个伪造的target, 而不是真实存在的文件target,注意Makefile的target默认是文件. 举个例子: $ cat -n Make…
请编写一个makefile同时编译.链接下面两个程序: main1.c: #include<stdio.h> int main(void) { printf("main1\n"); } main2.c: #include<stdio.h> int main(void) { printf("main2\n"); } [分析]:这里需要生成两个可执行文件main1和main2(两个目标).由于makefile只能有一个目标,所以可以构造一个没有规…
Phony Targets PHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字.有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能. 如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行.例如: clean: rm *.o temp因 为"rm"命令并不产生"clean"文件,则每次执行"make clean"的时候,该命令都会执行.如果目录中出现了"clean"文件,则规则失…
makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定CPP文件的编译来产生特定的OBJ文件. 附上原文: Experienced programmers are familiar with…
/* main.c */        #include "mytool1.h"        #include "mytool2.h"        int main(int argc,char **argv)        {        mytool1_print("hello"):        mytool2_print("hello"):        }        /* mytool1.h */     …
GNU Make简介 大型项目的开发过程中,往往会划分出若干个功能模块,这样可以保证软件的易维护性. 作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相应的更新.如果通过手动去完成这个工作的话,对于小型的项目可能还行,但是对于比较大型的项目就几乎是不可能的. 因此Linux 系统提供了一个自动维护和生成目标程序的工具 make,它可以根据各个模块的更改情况去重新编译连接目标代码 Make 工具的作用就是实现编译连接过程的自动化.它定义了一种语言,用…