This question介绍了如何通过数字分别获取每个依赖项。
但是,如果我在一条规则中有7个依赖项,而我想获得前5个,是否有规范的方法可以指定我想要前5个?
我主要是为了提高可读性。
OutBin: In1.cc In2.cc In3.cc In4.cc In5.cc libA.a libB.a
gcc <MAGIC_STRING_FOR_FIRST_FIVE_DEPENDENCIES> -o OutBin
答案 0 :(得分:2)
那又怎么样:
OutBin: In1.cc In2.cc In3.cc In4.cc In5.cc libA.a libB.a
gcc $(wordlist 1,5,$^) -o OutBin
但是,如果您真正想要的是源文件,则以下内容可能会更好,因为它更通用,并且不依赖于依赖项的数量或顺序:
OutBin: In1.cc In2.cc In3.cc In4.cc In5.cc libA.a libB.a
gcc $(filter %.cc,$^) -o OutBin
注意:
libA.a libB.a
),但在配方中不使用它们是没有用的。难道不是简单地gcc $^ -o OutBin
?您应该考虑在食谱中使用自动变量:
OutBin: In1.cc In2.cc In3.cc In4.cc In5.cc libA.a libB.a
gcc $^ -o $@
它又是一种更通用,更不易出错的方法,并且允许对多个目标使用相同的规则。