CXX=clang++ $(CXXFLAGS)
CXXFLAGS=-O2
OFILES=a.o b.o c.o
.SUFFIXES: .o .cpp
main: $(OFILES)
$(CXX) $(OFILES)
clean: rm -f *.o *~
a.o: a.cpp a.h
b.o: b.cpp b.h
c.o: c.cpp
.o ファイルは削除されません。@echo を rm の前に付けようとすると、それも起こらないようです。何か案は?
CXX=clang++ $(CXXFLAGS)
CXXFLAGS=-O2
OFILES=a.o b.o c.o
.SUFFIXES: .o .cpp
main: $(OFILES)
$(CXX) $(OFILES)
clean: rm -f *.o *~
a.o: a.cpp a.h
b.o: b.cpp b.h
c.o: c.cpp
.o ファイルは削除されません。@echo を rm の前に付けようとすると、それも起こらないようです。何か案は?
現在のように、clean
ターゲットは「ファイル」、、およびに依存します。したがって、これらの「ファイル」が変更された場合にのみ実行されます。rm
-f
*.o
*~
この線
clean: rm -f *.o *~
2行になるはずです
clean:
rm -f *.o *~
一般的な makefile の書き方は次のようなものです:
# Variables
VARIABLE1=value1
VARIABLE2=value2
# etc...
# Targets
# The first target is the "default" target when `make` is invoked
# without any specific target
default: some_other_target
# Other targets...
あなたの場合、「デフォルト」のターゲットが必要なclean
場合は、上記のテンプレートを使用すると、ターゲットdefault
に依存します。clean
default: clean