Makefile的概念与使用
Makefile其实是linux中的一种包含构建指令的文件,用于自动化构建
一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,
Makefile的编写
环境:centos7
不废话,先编写一个简单的Makefile
要编写Makefile首先肯定要有一个可编译文件,这里以hello.c为例子
正常情况下可以使用命令进行编译
gcc -o Hello hello.c
但是当项目文件过多时,频繁的使用上面命令进行编译不现实
引入Makefile:通过vim Makefile创建并开始编写一个Makfile文件
Hello时编译形成的可执行文件,需要对应的依赖项,也就是源文件。
$@: 会被替换成当前正在构建的目标文件的名称。
@^:会替换用于构建目标文件的源文件名
.PHONY: 在 Makefile
中,.PHONY
是一个特殊的伪目标(pseudo-target),用于声明一些不是实际文件名的目标。这告诉 make
这些目标不会对应到磁盘上的文件,因此在检查依赖关系和是否需要更新目标时,make
不会去寻找与这些目标同名的文件。
所以一般用来清理形成的可执行文件,如上面的Hello
多个源文件的Makefile编写
同时编译2个及以上的源文件