gpt4 book ai didi

linux - Makefile 依赖生成不检查 header

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:27 25 4
gpt4 key购买 nike

我正在使用一个旨在自动生成依赖项的 makefile。但是在我的文件中,我发现尽管对头文件的更改会导致重新编译代码,但它们不会导致重新生成依赖项,正如我认为的那样。谁能看到我遗漏了什么?

.SUFFIXES : .hpp .cpp .d .o
SOURCES=main.cpp sub1.cpp sub2.cpp
OBJECTS=${SOURCES:.cpp=.o}
DEPENDENCIES=${SOURCES:.cpp=.d}

.cpp.d:
g++ -MM $< > $@
.cpp.o:
g++ $< -c `pkg-config gtkmm-2.4 --cflags --libs` -g

calculator: ${OBJECTS} ${DEPENDENCIES}
g++ ${OBJECTS} -o calculator `pkg-config gtkmm-2.4 --cflags --libs` -g

include ${DEPENDENCIES}

最佳答案

虽然我同意 Dummy00001 的解决方案,但将 -MP 标志添加到 g++ 命令以生成依赖文件可能会有所帮助。它所做的是添加 PHONY 目标以及依赖项列表中所有头文件的名称。

即如果g++ -MM $<产生

test.o: test.cpp test.h dummy.h etc_bkp.h

然后 g++ -MM -MP $<产生

test.o: test.cpp test.h dummy.h etc_bkp.h
test.h:
dummy.h:
etc_bkp.h:

即使重命名完成或文件已删除,这也有助于 make 不中断

关于linux - Makefile 依赖生成不检查 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263382/

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