C语言makefile
makefile的概述
c
gcc a.c b.c c.c ‐o main如果只修改了b.c 使用gcc编译 需要对所有文件重新编译。
make 是个命令,是个可执行程序,用来解析 Makefile 文件的命令
makefile 是个文件,这个文件中描述了咱们程序的编译规则。
采用 Makefile 的好处:
1、简化编译程序的时候输入得命令,编译的时候只需要敲 make 命令就可以了
2、可以节省编译时间,提高编译效率
makefile的语法规则
c
1 目标:依赖文件
2 命令列表gcc a.c b.c c.c -o main
目标:就是需要生成的文件
依赖文件:通过依赖文件 生成 目标文件
命令列表:实现 将依赖文件 生成 目标文件
c
1 main:a.c b.c c.c
2 gcc a.c b.c c.c ‐o mainc
main:00_code.c
gcc 00_code.c ‐o mainmake 默认在工作目录中寻找名为 GNUmakefile、makefile、Makefile 的文件作为
makefile 输入文件
make -f 自定义makefle文件名
make 工具默认会实现 makefile 文件内的第一个目标。
make 目标 ----->选择目标执行
makefile的变量
1、自定义变量
1 变量名=变量值
引用变量:
c
1 cc=gcc
2 exec=main
3 obj=main.o fun.o
4 $(exec):$(obj)
5 $(cc) $(obj) ‐o $(exec)
6 main.o:main.c
7 $(cc) ‐c main.c ‐o main.o
8 fun.o:fun.c
9 $(cc) ‐c fun.c ‐o fun.o
10 clean:
11 rm *.o $(exec)2、系统环境变量
make 可以识别系统环境变量,在 makefile 中可直接读取或修改拷贝后的变量
查看环境变量:env
3、预定义变量

make
1 cc=gcc
2 exec=main
3 obj=main.o fun.o
4 flags=‐Wall
5 $(exec):$(obj)
6 $(cc) $^ ‐o $@ $(flags)
7 %.o:%.c
8 $(cc) ‐c $< ‐o $@ $(flags)
9
10 clean:
11 rm $(obj) $(exec)
阿源的知识库