草庐IT

c++ - 创建库调用层次结构的工具

我有一个非常大的C++源代码(使用标准模板编写)。我需要了解它的控制流程。它的入口点是main()函数,但是在main()中它调用了很多函数(这些函数又调用了另一个函数)所以我很难跟踪什么去哪里。我正在使用Eclipse在文件之间导航并保持跟踪,但仍然很难管理,因为它包含大约100个.c和.h文件。是否有任何工具可以创建从main()开始的调用层次结构。虽然我有100个文件,但我知道它只使用了大约35个文件。我在Linux上。GCC可以帮我解决这个问题吗? 最佳答案 您可能使用的工具列表:http://en.wikipedia.or

c++:生成函数调用树

我想解析项目中当前的c++文件并列出其中的所有方法/函数,然后生成函数调用和调用树。F.g.你可以引用doxygen如何生成调用树。我检查了gccxml但它没有列出从另一个函数调用的函数。请给我一些我可以使用的轻量级工具(开源)。谢谢! 最佳答案 静态调用树不一定是运行时调用树。回调和虚函数把水搅浑了。所以静态分析只能给你部分答案。我能够获得可靠调用树的唯一方法是在已编译的可执行文件上运行gprof。输出可以被按摩到一个非常准确的调用树中。 关于c++:生成函数调用树,我们在StackO

c++ - Doxygen 没有列出嵌套的命名空间

我已经将我们的C++类注释更新为doxygen格式,它们看起来不错……但是namespace列表/选项卡根本没有用。我们有一个父命名空间,例如john,然后是每个库或功能区域的子命名空间,例如john::graphics、john::sound、等等Doxygen只列出了一个命名空间:john。我是否必须简单地更改一些设置,或者是否必须记录我的命名空间以便doxygen获取它们? 最佳答案 通常,您必须记录任何内容,以便Doxygen确定它是否重要。包括命名空间。但是您不必特别好地记录它们;Doxygen只需简要说明它们的用途就足以

c++ - 使用 Doxygen 生成项目指标?

我目前使用Doxygen生成我的C++项目的文档。由于Doxygen很棒并且会生成大量信息,我想知道是否有一种方法可以将项目的指标集成到生成的文档中。当我谈到指标时,我会想到代码行数、类数、函数数、圈复杂度等。有什么办法吗?如果这不能直接实现,我们是否可以为Doxygen创建一个小插件来向生成文档添加更多信息? 最佳答案 我会查看由doxygen生成的XML输出,其中可能包含您需要的信息,尽管您可能需要再次运行doxygen。您可以在运行doxygen之前添加预处理器脚本,它会为您生成指标并创建一组页面来显示此信息。(查看Doxyf

c++ - Doxygen:如何链接到带注释的源代码?

我的库有一个非常简单的示例Main.cpp文件,并且有一个教程页面。该页面看起来像这样:/***@pagesimpleexampleSimpleExample**Thisexampleshowsbasicuse.Itisin\refsimple_example/Main.cpp.**Andthisisthedescriptionoftheexample.*/现在它所做的是用指向该文件文档的链接替换simple_example/Main.cpp引用。我希望它直接转到带注释的源代码。有没有办法在不完全禁用每个文件文档的情况下做到这一点?我想要它,但我不喜欢人们需要点击Main.cpp链接,

c++ - 通过 Doxygen 中的宏定义的文档函数

我有一个实际上并不存在但通过宏定义的类:#defineDEFCLASS(name,datatype)Classname{\public:\voidclear();\datatypeobj;\};DEFMETHOD(StringContainer,constchar*)...StringContainerfoo("hi!");当然它应该使用模板实现,但我没有写它,我无法更改它并且大型代码库依赖于它。现在的问题是,我想在doxygen中记录StringContainer。但是,它不是真正存在的类,所以如果我这样做:/*!\classStringContainer\briefAstringc

c++ - Doxygen 用调用图记录一个类中的所有函数?

找出C++类中所有调用的最佳方法是什么?我不仅想找到所有的调用,我还想找出根本没有被调用的函数,这样我就可以清理我的代码。我听说doxygen在生成调用图时可以创造奇迹,但它似乎只是为我的构造函数生成调用图,就像其他函数一样,当我需要更多时。我所有的类函数都已记录在案。 最佳答案 我们在这里确实需要更多信息,例如,您是否记录了所有类方法?您是否对默认的doxygen配置文件进行了任何更改?第一步尝试设置CALL_GRAPH=YESEXTRACT_ALL=YESEXTRACT_LOCAL_CLASSES=YES在doxygenconf

c++ - 有没有办法为 C++ 优化 doxygen?

对于Qt/C++项目,我们将使用doxygen生成一些文档,因此,我正在寻找“最佳”配置文件。我在想的一件事是你有这样的东西OPTIMIZE_OUTPUT_FOR_C=NOOPTIMIZE_OUTPUT_JAVA=NOOPTIMIZE_FOR_FORTRAN=NOOPTIMIZE_OUTPUT_VHDL=NO但我找不到类似C++的东西,而且我不确定我是否需要C++之类的东西。是否有类似“OPTIMIZE_OUTPUT_FOR_C++”的选项?谢谢约翰 最佳答案 在我看来,Doxygen默认针对C++进行了优化。据我所知,C++是Do

c++ - 如何在 Doxygen 代码示例中插入多行注释

我试图在Doxygen文档中包含一个包含多行注释的代码示例。问题是C++预处理器将*/解释为我的Doxygen注释的结尾,因此文件的语法被破坏了。例如:/*!\briefMyDoxygencomment.**\code*myFunction()/*Somemulti-linecomment*/*\endcode*/我已经尝试过适用于JavaDoc注释的建议:使用HTML实体对斜杠进行编码,如下所示:*\code*myFunction()/*Somemulti-linecomment*/*\endcode但这不起作用(我猜是因为Doxygen不会替换代码部分中的HTML实体)。所

c++ - Qt 文档注释的文档? Qt + 氧气?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我在哪里可以找到Qt文档注释的文档?我指的是Qt如何使用特定样式进行文档注释,如下所示:/*!\classMyClassName\briefTheMyClassNameclassisusedasanexampleonStackOverflow.Thisclassservesafewfunctions,themostimportantbeing:\list\iSopeo