【发布时间】:2021-11-24 20:20:59
【问题描述】:
我有一个用于多个电源的 makefile
info ::
@echo "make main1/2/3"
PROGS = main1 main2 main3
.SECONDEXPANSION:
${PROGS} :: $$@.o
${CC} -o $@ $^
但是一个(并且只有一个)main 需要另一个链接的对象。我尝试用
解决这个问题main3 :: lib.o
但不知何故,lib.o 并未添加到先决条件列表中。
链接线的顺序有所不同。
- 我在
PROGS链接行之后添加了main3行,然后由于缺少目标文件而导致炸弹爆炸。 - 如果我在
PROGS行之前添加它之前,则首先使用我不想要的默认规则执行自定义行,然后无论如何都会执行PROGS规则,然后它会爆炸。
有没有办法使用诸如$^ 之类的宏来链接对象?我当然可以从 PROGS 宏中分离出 main3,但该宏也有许多其他用途。
【问题讨论】: