Makefile:获取目标先决条件的先决条件
是否有任何本地生成文件(GNU make等)来获取目标先决条件的先决条件? 这些问题不是关于通过编译器从源文件进行依赖性检查(例如,g ++ -MM)。
在主题上找不到任何东西。 正如我所看到的,这种情况没有特别的变数。
为了说明问题,这里是我从C ++源代码到对象的编译配方的定义,虽然很标准:
##### UNIVERSAL COMPILE #####
%.o: %.cpp %.hpp
${CC} ${CFLAGS} -c $< -o $@
然后我需要构建真正的大型链接:
a: a.o
b: b.o a.o
c: c.o b.o a.o
d: d.o c.o b.o a.o
etc, up to N times...
这是因为这个链接配方是必要的:
##### UNIVERSAL LINK #####
%: %.o
${LN} ${LNFLAGS} $^ -o $@
如您所见,recipe会提供所有提供的依赖关系 ,但需要获取所有提供的依赖关系的所有依赖关系 。
整体程序链接没有问题,因为它在配方中:
##### PROGRAM LINK ######
${BIN}: ${OBJ}
${LN} ${LNFLAGS} ${OBJ} -o ${BINDIR}/$@
但是我需要做单元测试,并且单元依赖于每个其他单元,依赖性和子系统测试层次结构非常累人,可以编写为硬编码的依赖链。
也许我是以错误的方式做的? 也许有这个链接配方的替代品? 谢谢!
你做错了。 为什么你想声明的是bo
必须每次重新编译ao
变化(这是(一)当您指定的先决条件PF这意味着事情bo : ao
)? 这不是需要发生的事情,也没有意义。
您需要列出所有对象文件作为单个可执行文件的先决条件,例如:
exe: a.o b.o c.o d.o ...
而已。
链接地址: http://www.djcxy.com/p/64119.html