Makefile进阶使用

在Makefile中,%.o : %.c 是一种模式规则(Pattern Rule),用于定义如何从一个源代码文件(.c文件)生成对应的编译目标文件(.o文件)。这个规则表示的意思是:

  • “%.o” 是目标文件的模式,其中的 % 是一个通配符,它可以匹配任何非空字符串。
  • “%.c” 是依赖文件的模式,同样使用了 % 通配符。

当Makefile执行时,它会查找当前目录下所有与目标模式(.o)匹配的文件,并寻找与其具有相同名字但扩展名为 .c 的文件作为依赖。例如,如果有文件 foo.c,那么这条规则就会匹配 foo.o,Make会根据这个规则编译 foo.c 生成 foo.o

下面是一个简单的例子:

Makefile

1%.o : %.c
2    gcc -c $^ -o $@

在这个例子中,规则告诉 Make,对于任何以 .c 结尾的源文件,都应该使用 gcc -c 命令编译生成对应的 .o 文件。其中 $< 代表第一个依赖(也就是 .c 文件),而 $@ 代表目标文件(.o 文件)。当 Make 需要重建某个 .o 文件时,它会调用指定的命令来执行编译操作。

与其不同的是:下图中的mikefile文件则是每次编译所有的依赖.c文件,编译效率较低,而进阶的方式是先生成.o在通过.o文件生成目标文件。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值