我正在尝试为我的项目创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 $@