各个cpp代码之间关系的软件

画各个cpp代码之间关系的软件

Doxygen

官方:https://www.doxygen.nl/manual/index.html

使用doxygen和graphviz来产生源代码函数调用图

这个软件可以用来画出代码函数的调用关系图。

我下载的是windows版本的doxygen(doxygen-1.9.6-setup.exe),安装;还要下载和安装graphviz:( http://www.graphviz.org/)。

打开doxywizard,选左边菜单栏的wizard,然后填写这几项:

image-20230220094151556

wizard选项卡中,选择Project Name作为工程名称,将来会显示在文档的标题中;选择Source code directory,设置源代码所在目录,Destination directory设置文档的生成目录;选择Scan recursively则递归分析源代码目录中的子目录内的源代码。

点左边菜单栏的expert,点build,勾选这几项:

image-20230220094613290

勾选Build选项中的与函数有关的选项,EXTRACT_ALL必须勾选。

再点菜单栏的dot,填写这几项:

image-20230220171150550

由于使用到了Graphviz,所以要设置Dot选项,勾选HAVE_DOT,并设置DOT_PATH为Graphviz的bin目录。勾选CALL_GRAPH和CALLER_GRAPH,生成函数调用关系图。

image-20230220171311527

最后选择Run选项卡,点击Run doxygen,生成文档文件。

打开文档文件,在函数的分析中即可看到函数调用图。

比如我其中一个例子的路径是:K:/c_practice/doxygen_test_2/output/html/index.html 点开,就能在浏览器看见关系图

比如我要看的代码是 wenet_api.cc,可以看见它的结构是:

image-20230220095834547

里面定义了一个类叫recognizer,定义了一些函数。

recognizer类里有一个函数decode(),下图表示它里头调用了函数,分别是recognizer::initdecoder()和recognizer::updateresult();它被wenet_decode函数调用了。

image-20230220100944383

各个软件

chatgpt

有很多软件可以帮助您绘制各个C++代码之间的关系,以下是其中一些常见的:

  1. Visual Studio:Visual Studio是一个非常强大的IDE,其中包括UML建模工具,可以帮助您绘制各个C++代码之间的关系。
  2. Doxygen:Doxygen是一种工具,可以生成代码文档,并在文档中包含各个C++代码之间的关系图。
  3. Code Visual to Flowchart:Code Visual to Flowchart是一种可帮助您将C++代码转换为流程图和UML图的工具。
  4. Dia:Dia是一种开源绘图工具,可以用于创建各种类型的图表,包括UML图,可以用于绘制各个C++代码之间的关系。
  5. Microsoft Visio:Microsoft Visio是一种专业的绘图软件,可以用于创建各种类型的图表,包括UML图,可以用于绘制各个C++代码之间的关系。

这些工具都有其自身的优缺点和使用限制,具体选择应该根据您的需求和偏好来决定。