[英]makefile not putting the .o and executable in the respective obj and bin directories
[英]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.