gpt4 book ai didi

c++ - Makefile 离开 .o 并且不生成可执行文件

转载 作者:行者123 更新时间:2023-11-28 05:58:28 24 4
gpt4 key购买 nike

我制作的 makefile 有问题,它没有生成可执行文件并将所有 .o 留在目录中。这是代码:

    CXXFLAGS=-Wall

sources = tst_Robot.cpp Robot.cpp Position.cpp Plot.cpp Objet.cpp EtatRobot.cpp EtatFige.cpp EtatEnRoute.cpp EtatEnChargeFacePlot.cpp EtatEnCharge.cpp EtatAVideFacePlot.cpp EtatAVide.cpp
objets = $(sources:.cpp=.o)

%: %.o
$(LINK.cpp) -o $@ $^

robot : $(objets)

###

clean:
rm -f *~ *.o *.bak

depend:
makedepend $(sources)

我不明白的是 makedepend 有效,没有错误,所有的 .o 都生成了,但程序本身没有生成,即使有规则: 机器人:$(对象)

所以我不明白为什么它不起作用,如果你能帮我弄清楚,我将不胜感激。

最佳答案

模式规则总是针对文件对的一对一匹配,例如

%.o: %.cpp

您可能认为模式规则只是为每一对编写单独规则的快捷方式。上述规则将匹配以下对:

source.o: source.cpp
other.o: other.cpp
...

您需要的是将规则 how to make robot 放置在机器人目标将被制作的位置。

robot: $(objets)
$(LINK.cpp) -o $@ $^

而且您必须删除模式规则,因为它适用于几乎所有内容。如果你调用 make 使用:

make robot

模式规则将尝试找到一个 robot.o 文件,该文件将作为构建机器人的输入。

关于c++ - Makefile 离开 .o 并且不生成可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com