0

成堆的!

对于这个看似简单的问题,刻苦的实验和搜索并没有找到任何解决方案。

在我的构建中,.cc 文件依赖于 .proto 文件。在制作过程中,.proto 文件被翻译成 .cc 和 .h 文件,然后被收集并构建成可执行文件。

如何确保在删除 .proto 时,在 make 过程中会自动删除相应的中间 .cc 文件?(如果不是,它会被带入构建的下一个阶段,这在过去已经引起了问题。)

现在,当我删除或重命名 .proto 时,我只是清除了所有生成的 .cc/.h 文件——这是正确的,但会触发几乎整个系统的重建。

提前致谢...!

4

1 回答 1

1

您可以编写类似的规则clean,但不那么严格:

SOURCES = $(PROTOS:.proto=.cc)

.PHONY: tidy
tidy:
        @rm $(filter-out $(SOURCES), $(wildcard *.cc))

然后,您可以手动启动此规则,或将其作为可执行文件的仅订单先决条件。

或者您可以将相同的命令放在可执行文件的规则中,但这有点不雅。

于 2012-05-10T17:53:33.647 回答