繁体   English   中英

Makefile离开.o并且不产生可执行文件

[英]Makefile leaves .o and doesn't produce executable

我制作的makefile有问题,该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都生成,但是程序本身也没有生成,即使使用以下规则:robot:$(objets)

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

模式规则始终是一对文件配对的一对一匹配,例如

%.o: %.cpp

您可能会想到,模式规则只是为每对编写单独的规则的捷径。 上面的规则将匹配以下对:

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

您需要制定规则如何使robot成为目标。

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

而且您必须删除模式规则,因为它适用于几乎所有情况。 如果您使用以下方式致电make:

make robot

模式规则将尝试查找robot.o文件,这将是构建robot的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM