是否有工具可以显示给定 C++ 代码源/头文件集的所有全局命名空间名称?
问问题
101 次
3 回答
1
您可以尝试预处理文件并读取输出。这将告诉您将要编译的所有内容——包括您有意包含的所有内容,如 iostream 和无意中包含的系统头文件。
GCC 中的示例:
g++ -E file.cpp ... > file.i
其他编译器可能有执行此操作的选项(例如,如果他们希望直接从 Visual Studio 运行,可能会更难使用)。
然后打开文件。这有点神秘。以 # 开头的行告诉有用的信息,例如正在读取哪个文件/行。您可能会走到底部并向上阅读。
注意: ... 是您将在编译时传递的所有其他编译器选项和定义。这很重要,因为它可能会影响编译。
于 2012-09-12T03:35:05.603 回答
0
您可以为此使用CppDepend,并使用 CQLinq 一种语言来查询代码库,您可以执行更复杂的查询以准确获取您感兴趣的内容。
于 2012-09-13T10:13:48.893 回答
-1
在没有为您执行此操作的工具的情况下,如果您觉得需要深入研究,并且如果您拥有 Visual Studio 2010,我可能会从以下一个或两个选项开始:
- 项目属性->C/C++->高级->显示包含->YES
- 项目属性->C/C++->预处理器->预处理到文件->YES
这两个选项中的一个或两个可以让您开始为本地例程提供输入,该例程将找到存在于命名空间之外的声明。
这些选项以一种或另一种方式存在于早期版本的 Visual Studio 中——我认为至少可以追溯到 VS 2005。
于 2012-09-12T03:13:30.850 回答