我正在尝试为我的项目创建一个makefile,但在运行它时我收到一个错误 像:
make: Circular database.cpp <- database.cpp dependency dropped
make: database.cpp' is up to date.
这是我的Makefile:
HEADERFILES = $(wildcard *.h)
CPPFILES = $(wildcard *.cpp)
OBJFILES = $(patsubst %.cpp ,%.o ,$(wildcard *.cpp))
$(OBJFILES): $(CPPFILES) $(HEADERFILES)
g++ -c -o $(OBJFILES) $(CPPFILES)
ar rvs libdatabase.a $(OBJFILES)
我只有一个.cpp
和.h
文件。请有人纠正。
答案 0 :(得分:3)
patsubst
中有一个额外的空格阻止了正确的匹配,因此OBJFILES
是“database.cpp”。您可以这样纠正:
OBJFILES = $(patsubst %.cpp,%.o ,$(wildcard *.cpp))
但是,当您向代码库添加第二个源文件时,仍然会留下一个makefile会严重失败。我建议你这样做:
$(OBJFILES): %.o : %.cpp $(HEADERFILES)
g++ -c -o $@ $<
ar rvs libdatabase.a $@