makefile文件是用来帮助编译和管理C++项目代码的,需要配合make命令使用。makefile里也可以执行shell操作,具备一部分.sh脚本的功能。
makefile格式
makefile内容的编写按照如下规则
目标1:依赖1
命令1
目标2:依赖2
命令2
目标3:依赖3
命令3
.........................
目标N:依赖N
命令N
命令可以是任意的shell语句。多数情况下,命令都是起到了从依赖生成目标的功能。例如从.cpp文件生成.o文件,那么命令一定包括g++和一些编译参数的完整的编译命令。
目标1 2 3可以是嵌套依赖的,如果依赖1里包含目标2 目标3,那就是一种嵌套的依赖。也可以是独立的,例如目标1 2 3就是三个独立的可执行文件,或者三个动态库,那么他们之间是可以完全没有依赖关系的,写在一个makefile文件里只是便于统一管理。
命令前要以一个tab开头 。如果使用空格代替tab,执行make命令时会报
[root@localhost makefiletest]# make
makefile:5: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
举个例子
以下面简单的C++代码为例,说明makefile的具体使用。
源代码文件test.cpp
#include <string>
#include <iostream>
#include<iomanip>
int main(int argc, char** argv)