gpt4 book ai didi

c++ - Makefile 循环依赖被丢弃

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:58 25 4
gpt4 key购买 nike

我正在尝试为我的项目创建一个 makefile,但是在运行它时出现错误喜欢:

make: Circular database.cpp <- database.cpp dependency dropped

make: database.cpp' is up to date.

这是我的生成文件:

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,当您将第二个源文件添加到代码库时,该 makefile 会严重失败。我建议你这样做:

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

关于c++ - Makefile 循环依赖被丢弃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21324697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com