版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
make是一个命令,Makefile是一个文件(可大写也可以小写)
Makefile里面放的是依赖关系和依赖方法
新建一个makefile文件,在Makefile里写:
-
hello:hello.
c
-
-
gcc hello -o hello.
c
//必须以table开头
保存退出
生成可执行:
直接make,然后./hello就可以执行
-
make hello.c
-
./hello
Makefile很重要,会不会Makefile,说明了一个人是否具备完成大型工程的能力
清理项目(clear):
继续在makefile 里写:
-
hello
:hello.c
-
-
gcc
hello
-o
hello
.c
-
-
clean:
-
-
rm
-f
hello
默认运行的时候,从上到下,只生成hello(没有clean,clean不依赖任何文件)
如果要使用clean就直接用make clean命令。
伪目标:总是被执行
伪目标也是目标。为什么要用伪目标?
因为现在生成(编译)工程的方式是直接make,清理就直接make clean,
但规定如果要想第二次编译,必须保证修改过源代码。
如果想要他总是去编译(不修改也可以编译),那么我们在最前面加入.PHONY就可以总是被执行。
把clean设置成伪目标:
-
hello:hello.
c
-
-
gcc hello -o hello.
c
-
-
.
PHONY:clean
//把后面的标签变成伪目标
-
-
clean:
-
-
rm -f hello
也可以吧hello设置成伪目标:
-
.
PHONY:hello
-
-
hello:hello.
c
-
-
gcc hello -o hello.
c
-
-
.
PHONY:clean
//把后面的标签变成伪目标
-
-
clean:
-
-
rm -f hello
所以.PHONY就是定义之后可以总是被执行。
总结:
1、make是一个指令。Makefile是一个文件,放的是依赖关系。
2、依赖方法前必须用Tab开头,之后放依赖方法。
3、.phony定义伪目标,总是可以被执行