<分区>
在 Linux 上,什么是识别 C++ 项目所需的必要 #include
语句的快速方法?
我的意思是,假设有人给了你一个来自网络的片段,但没有提供必要的#include 语句。有没有一种方法可以让您运行 Linux 命令或编译器命令选项并确定缺少哪些函数或类,并且作为奖励,在硬盘驱动器上确定我可能在头文件中包含这些东西的位置。
<分区>
在 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# - 通过 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 变量和非常量变量进行操作?