c++ - 识别 C++ 必要包含的快速方法

标签 c++ include

<分区>

在 Linux 上,什么是识别 C++ 项目所需的必要 #include 语句的快速方法?

我的意思是,假设有人给了你一个来自网络的片段,但没有提供必要的#include 语句。有没有一种方法可以让您运行 Linux 命令或编译器命令选项并确定缺少哪些函数或类,并且作为奖励,在硬盘驱动器上确定我可能在头文件中包含这些东西的位置。

最佳答案

基本上,您需要一些分析器来解析您的源代码和 header ,并构建一个完整的依赖关系图,它最终会吐出供您进一步阅读和处理。

为此,我会听从 john 关于 g++ 和 Clang 的建议,但我非常怀疑他们能做到这一点。

您实际上可以做的,至少是使用 g++,是为已经存在的包含打印出一个图表。使用 -H 选项打印树或 -M 获取列表。

我还向您推荐了这个相关主题:Tool to track #include dependencies

不完全是您想要的,但那里提到的工具可能会有所帮助。

关于c++ - 识别 C++ 必要包含的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923462/

相关文章:

linux - 如何在系统级别将目录添加到 Perl 库路径?

C++ header 多变量指针包含

css - 使用户样式表适用于多个网站 + URL

c# - 通过 DllImport 在 C# 中调用 C 方法 - 尝试读取或写入 protected 内存

c - 如何排除pclint中的一些 "unable to open include file *.h"错误

c - 为什么不只在 header 中声明结构?这不会使 include-guards 变得不必要吗?

c++ - CLion 和 find_package : Generated CMake files are placed in some odd location 问题

c++ - 如何声明运算符/重载函数以对 const 变量和非常量变量进行操作?

c++ - 为什么 QToolButton 添加到 QToolBar 后不能隐藏?

c++ - 初始化结构中结构的 vector