列出C ++代码的全局命名空间的工具?

时间:2012-09-12 03:01:20

标签: c++

是否有一个工具可以显示给定C ++代码源/头文件集的所有全局命名空间名称?

3 个答案:

答案 0 :(得分:1)

您可以尝试预处理文件并读取输出。这将告诉您将编译的所有内容 - 其中包括您有意包含的所有内容,如iostream和无意中的系统标头。

GCC中的示例:

g++ -E file.cpp ... > file.i

其他编译器可能有选择这样做(例如,如果他们希望直接从Visual Studio运行,可能会更难使用)。

然后打开文件。这有点神秘。以#开头的行告诉有用的东西,比如正在读取哪个文件/行。你可能会走到最后并向上阅读。

注意:...是您在编译时传递的所有其他编译器选项和定义。这很重要,因为它可能会影响编译。

答案 1 :(得分:0)

您可以使用CppDepend,并使用CQLinq语言来查询代码库,您可以执行更复杂的查询以获得您感兴趣的内容。

答案 2 :(得分:-1)

如果没有为您执行此操作的工具,并且您觉得需要深入了解,并且如果您有Visual Studio 2010,我可能会开始使用以下一个或两个选项:

  • 项目属性 - > C / C ++ - >高级 - >显示包含 - >是
  • 项目属性 - > C / C ++ - >预处理器 - >预处理到文件 - >是

这两个选项中的一个或两个可以让您开始为本地例程提供输入,该例程将查找存在于命名空间之外的声明。

在早期版本的Visual Studio中,这些选项以某种方式存在 - 至少我认为至少就像VS 2005一样。