gpt4 book ai didi

C++ makefiles - 头文件与外部库的依赖关系

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

我想将依赖目标添加到我的 Makefile,我知道这可以通过 makedepend 或 g++ -MM 选项来完成,我愿意使用它们中的任何一个,但我更喜欢 -MM 选项,因为它允许我排除标准库(不知道makedepend能不能做到)。

问题是我在我的应用程序中使用了一些外部库 header ,我希望这些 header 从生成的依赖项中排除,所以我如何从这些生成的依赖项中排除某些目录。[Edit-start] 我已经尝试使用 grep -v 但问题是如果排除的行是某个目标中的最后一个换行,下一个目标将是由于行尾的转义“\”字符导致依赖项规则损坏,因此连接到该目标。除此之外,还需要花费时间来解析库 header [Edit-end]

另一个问题是如何编辑生成的目标文件目标的后缀,我正在使用一个 Makefile,它通过使用这样的目标来编译通过变量提供的源文件:

%.o: %.cpp
g++ $< -o$*.o ...

最佳答案

第一个问题(外部库)可以通过首先使用 grep -v 然后将输出传递给 sed 'N;s/\\\n\(.*\.o\)/\n\1/;P;D' 删除不需要的转义字符 '\' 以解决由于 引入的排除而导致的连接目标问题grep -v。但是通过外部库 header 解析它们的时间开销仍然是原样。

第二个问题(生成的目标后缀编辑)可以通过 sed 解决,也可以使用 sed 's/.o:/$(MY_SUFFIX):/' where $(MY_SUFFIX) 是替换生成的目标规则中的.o的后缀。

关于C++ makefiles - 头文件与外部库的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684497/

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