【发布时间】:2013-09-12 03:09:03
【问题描述】:
我想将依赖目标添加到我的 Makefile,我知道这可以通过 makedepend 或 g++ -MM 选项来完成,我愿意使用它们中的任何一个,但我更喜欢 -MM 选项,因为它允许我排除标准库(不知道makedepend能不能做到)。
问题是我在我的应用程序中使用了一些外部库头文件,我希望将这些头文件从生成的依赖项中排除,那么如何从这些生成的依赖项中排除某些目录。
[Edit-start] 我已经尝试过使用grep -v,但问题是,如果排除的行是某个目标中的最后一个换行行,则下一个目标将连接到该目标,因为在导致损坏的依赖规则之前,在行尾转义“\”字符。除此之外,通过库头解析它们所需的时间[Edit-end]。
另一个问题是,我如何编辑生成的目标文件目标的后缀,我正在使用一个 Makefile,它通过使用这样的目标来编译通过变量提供的源文件:
%.o: %.cpp
g++ $< -o$*.o ...
【问题讨论】:
-
您没有足够准确地解释所涉及的确切外部库是什么以及它们是如何在您的
Makefile中给出的。你为他们使用pkg-config吗?您不能使用grep -v从生成的依赖项中过滤掉它们吗?请从您的Makefile提供更多代码... -
@BasileStarynkevitch 库,如 wxWidgets,由 wx-config 在 Makefile 中提供;其他库我使用 -I 选项包含它们的标题。我已经尝试使用
grep -v,但问题是,如果排除的行是某个目标中的最后一个换行行,则下一个目标将连接到该目标,因为它之前的行中的“\”字符导致损坏的依赖规则。除此之外,通过库头解析它们所花费的时间。
标签: c++ linux makefile g++ dependencies