makefile中 $@, $^, $<, $?含义

 

$@  表示目标文件
$^  表示所有的依赖文件
$<  表示第一个依赖文件
$?  表示比目标还要新的依赖文件列表

 

例子

root_num.exe: root_num.o my_root.o  
    gcc -o root_num.exe root_num.o my_root.o  
root_num.o: root_num.c my_root.h  
    gcc -c root_num.c  
my_root.o: my_root.c my_root.h  
    gcc -c my_root.c  

简化后

root_num.exe: root_num.o my_root.o  
    gcc -o $@ $^  
root_num.o: root_num.c my_root.h  
    gcc -c $<  
my_root.o: my_root.c my_root.h  
    gcc -c $<   

经过简化后,我们的Makefile是简单了一点,不过人们有时候还想简单一点。

这里我们学习一个Makefile的缺省规则 

.c.o: 

  gcc -c $< 

这个规则表示所有的 .o文件都是依赖与相应的.c文件的。

root_num.exe: root_num.o my_root.o  
    gcc -o $@ $^  
.c.o:
    gcc -c $<   

 

转载于:https://www.cnblogs.com/libra13179/p/9297700.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值