首页 资讯频道 互联频道 智能频道 网络 数据频道 安全频道 服务器频道 存储频道

浅谈关于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文件。

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

相关文章

最近更新