如何找到我的 C++ 应用程序正在使用的标头? [复制]

Posted

技术标签:

【中文标题】如何找到我的 C++ 应用程序正在使用的标头? [复制]【英文标题】:How to find what headers my C++ application is using? [duplicate] 【发布时间】:2015-06-10 15:11:47 【问题描述】:

我正在使用一些仅由标头组成的开源(MIT 许可)项目。 我只使用了这个项目所提供的一小部分,我不想无缘无故地在我的项目中包含所有标题。我创建了一个示例项目并将开源项目包含在其中。有什么方法可以获取我的示例项目使用的所有标头的列表?

为了澄清,在我的示例项目中,我有:

#include "opensourceMainHeader.h"

opensourceMainHeader.h 有:

#include "opensourceAuxiliaryHeader1.h"
#include "opensourceAuxiliaryHeader2.h"
#include "opensourceAuxiliaryHeader3.h"

等等。然后我想得到(我猜来自链接器或 VC++ 中的其他工具链)使用的标头列表。

这可能吗?

【问题讨论】:

不是重复的,因为它讨论的是为整个项目(基于 C++)而不是单个 C 文件查找依赖项。这个问题也比另一个问得好。它也没有像被提名为可能重复的另一个问题所建议的那样要求工具推荐。这个问题是具体的,可以回答的,并且有适当的细节。它应该投赞成票,而不是反对票。 我不知道它是否在 Windows 上可用,但您可能对 include-what-you-use 感兴趣,如 my answer to "Self-sufficient header files in C/C++"。 我猜VC有一个选项/H,因为g++有一个选项-H。 (未记录:VC 接受破折号选项。即使是旧的 -o) 检查一下,对于 VC,/H 是未记录的,列出包含文件的选项是“/showIncludes”(是的,详细) 【参考方案1】:

VS中有一个项目设置可以做到这一点。转到您项目的属性页,然后转到Configuration Properties | C/C++ | All Options。启用Show Includes 选项。构建您的项目,并检查输出。这是/showIncludes 选项。

【讨论】:

以上是关于如何找到我的 C++ 应用程序正在使用的标头? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C++ 以及 iostream 和 stdio 标头缩放 .bmp 图像?

致命错误 C1189:#error:core.hpp 标头必须编译为 C++

使用 Wt c++ 时找不到 Postgres 标头

如何在标头中声明(或定义)函数的问题

关于具有多个类和标头的运输程序中的继承、隐私和对象的 C++ 问题

找不到标准标头的语言