1、为什么要是用Makefile
gcc 编译的时候 不会 检查 文件是否被修改过 直接 所有源文件 重新编译(会造成 大量的重复 编译)
make: 编译的时候 会 检查 文件是否被修改过 只编译 被修改过源文件 (避免 大量的重复 编译)
make:大量代码 的关系维护
2、make的语法
通过 依赖文件 生成 目标文件。
目标:依赖文件 (只是关系的描述)
命令列表(将依赖文件 生成 目标文件的具体指令)
注意:依赖文件可以是多个。命令 也可以多个
main.c
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("hello make world\n");
printf("PI = %lf\n",PI);
return 0;
}
makefile
main:main.c
gcc main.c -o main
注意事项:
当敲make指令的时候 make工具 自动寻找当前路径下的GNUmakefile、makefile/Makefile文件 按照GNUmakefile、makefile/Makefile中规则执行编译。
如果 makefile文件名是自定义 就需要 -f指明.
只敲make 默认执行 第一个目标 然后 退出
如果想执行A目标:make A
如果想执行B目标:make B
3、复杂的makefile
4、make的变量
自定义变量
环境变量
预定义变量