生成文件循环依赖性下降

我正在尝试为我的项目创build一个生成文件,但在运行它时,我得到一个错误:

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文件。 请有人纠正它。

您的patsubst有一个额外的空间阻止了正确的匹配,所以OBJFILES是“database.cpp”。 你可以这样纠正它:

 OBJFILES = $(patsubst %.cpp,%.o ,$(wildcard *.cpp)) 

但是,如果将第二个源文件添加到代码库中,那么这样做仍会给makefile造成不良影响。 我建议你这样做:

 $(OBJFILES): %.o : %.cpp $(HEADERFILES) g++ -c -o $@ $< ar rvs libdatabase.a $@