这是我的make文件。
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
Run Code Online (Sandbox Code Playgroud)
在这里,我正在尝试使用
clean:
rm -f *o observer
Run Code Online (Sandbox Code Playgroud)
清理临时 *.o 文件。但程序编译并生成目标程序集,但不会删除 *.o 文件。也没有显示任何错误。
rm -f *o observer在终端中尝试过。它工作正常。Tab缩进clean或rm在目录中。$(RM)代替rm. 但不走运我发现了这个问题。必须指定clean为目标, all否则它不会调用。一般是这样的。
all: [your executive names] clean
在上述情况下
all: observer clean
这是上述案例的完整制作文件
all: observer clean
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
Run Code Online (Sandbox Code Playgroud)