【发布时间】:2014-09-02 15:39:14
【问题描述】:
这是我的制作文件。
all: observer
observer: main.o weather_center.o display.o subject.o observer.o
g++ main.o weather_center.o display.o subject.o observer.o -o observer
main.o: main.cpp
g++ -c main.cpp
weather_center.o: weather_center.cpp
g++ -c weather_center.cpp
display.o: display.cpp
g++ -c display.cpp
subject.o: subject.cpp
g++ -c subject.cpp
observer.o: observer.cpp
g++ -c observer.cpp
clean:
rm -f *o observer
这里我尝试使用
clean:
rm -f *o observer
清理临时 *.o 文件。但程序编译并生成目标程序集,但不会删除 *.o 文件。也没有显示任何错误。
- 我在终端中尝试了
rm -f *o observer。效果很好。 - 我使用
Tab进行缩进 - 目录中没有以
clean或rm开头的文件。 - 尝试
$(RM)而不是rm。但没有运气
【问题讨论】:
-
缩进在 Makefile 中至关重要。此外,您不需要
.o目标,隐式规则将为您制作它们。 -
@bstamour:不走运,不适用于
rm -f *.o observer -
你试过
make clean吗?输出是什么? -
您发布的示例中的缩进错误。确保它反映了你所拥有的。如果是这样,您需要修复 Makefile 中的缩进。
-
你最终尝试了
.PHONY: clean吗?并在除all之外的所有规则中删除此(意外?)缩进?