makefile典型的模式是
目标 : 依赖文件 ....
[TAB]生成目标的指令
假如我们要调用make clean,则你还要以clean为目标,指定clean的依赖和指令。当然,clean其实不依赖任何文件,所以依赖文件一栏其实是空白的。
这里有一个问题。假如makefile的所在路径里确实有一个clean文件,那么make clean 的操作可能会影响这个真实存在的文件。为了避免这种问题,makefile引入了.PHONY。一旦被.PHONY标记,make 指令就知道clean是一个伪目标,不会对真实的clean文件做动作。
看下面的makefile 和 main.cpp:
CC := g++
main : main.o
${CC} -o main main.o
main.o : main.cpp
${CC} -o main.o -c main.cpp
.PHONY : clean
clean :
rm *.o main
main.cpp
#include <iostream>
int main(void){
std::cout<<"make an exe"<<std::endl;
std::cin.get();
return 0;
}
效果: