makefile进阶(六)-- 在makefile里引用别的文件(转)

make -f <filename>命令可以指定makefile的文件名,而不是默认的makefile、Makefile或GNUmakefile。


makefile里的 include <filename>指令可以引入别的文件。注意文件名不能用字符串包围,如:
include header.mk可以引入当前路径下的header.mk,但是include "header.mk"会出现找不到文件的错误。

include也可以同时引入多个文件,比如:
include header.mk h2.mk *.mk


VPATH变量可以指定源文件的目录。只需要两行:
VPATH=src1:src2
test: foo1.o foo2.o foo3.o

make就可以得到我们想要的东西:
$ make
cc    -c -o foo1.o src1/foo1.c
cc    -c -o foo2.o src1/foo2.c
cc    -c -o foo3.o src2/foo3.c

相应的, vpath关键字(全小写,与VPATH变量不同)也可以设置搜索路径。
vpath <pattern> <directories>为匹配模式pattern的文件指定搜索路径<directories>。
把makefile修改为:
test: foo1.o foo2.o foo3.o
foo1.o foo2.o foo3.o:
vpath foo1.c src1
vpath %2.c src1
vpath foo%3.c src2

make同样会得到我们想要的东西:
$ make
cc    -c -o foo1.o src1/foo1.c
cc    -c -o foo2.o src1/foo2.c
cc    -c -o foo3.o src2/foo3.c

这是%是个通配符,等价于shell里的*。如果指定的多个规则里有重复的<pattern>,那么make会按vpath语句的先后顺序来执行搜索。
vpath <pattern>清除所有匹配<pattern>的搜索目录。
vpath清除所有已设置的搜索目录。

转载于:https://www.cnblogs.com/Mr-Shadow/archive/2013/02/04/2891471.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值