浅谈关于makefile的全自动化编译和批量编译

时间:2020-03-03 10:44:21 来源: net工具人


对于大型项目来说,边写边修改makefile中的.c文件是不效率的

makefile实现自动添加.c文件(全自动化编译)。

$(wildcard 模式)

在当前目录下匹配所有的相应模式的文件。

src = $(wildcard *.c) ,用于获取所有.c文件。

$(src :%.c=%.o), 把src的.c全部替换为.o (这里的%是通配符)

obj = $(src:%.c=%.o)

这里的 %.o:%.c 意思是所有的.o文件的生成,都依赖于.c文件。替代了下边用#注释的那几句指令。同理,当只执行make xxx.o 的时候,也会自动匹配到 %.o:%.c 上,执行xxx.c 到xxx.o 的编译过程。如果有需要单独编译的部分,可以单独写出来。

makefile实现多个项目的编译。

如果有多个.c文件需要编译成可执行文件,可以用makefile进行批量操作。

all:$(EXF) 表示makefile 要生成 all, 就依赖于目录下所有的可执行文件。

$(EXF):%:%.o 表示每生成一个可执行文件,依赖于其相对应的.o文件。

%.o:%.c 表示每生成一个.o文件,依赖于其相对应的.c文件。

这样,就能保证生成了多个可执行文件。

关键词:

关于我们 加入我们 广告服务 网站地图

All Rights Reserved, Copyright 2004-2020 www.ctocio.com.cn

如有意见请与我们联系 邮箱:5 53 13 8 [email protected]

豫ICP备20005723号    IT专家网 版权所有