使用Doxygen和Graphviz生成函数调用关系图



最近看一个比较大的项目的源码的时候,觉得直接看代码真的很难受,跳过来跳过去的,就像清晰直观的看到函数直接调用的关系。

方案

网上有很多解决办法,有IDE自带的,有Understand(不想盗版又买不起,于是放弃)的,还有就是用开源工具Doxygen和Graphviz来生成的

过程

主要记录一下自己的使用过程

  • 首先,肯定是安装着Doxygen和Graphviz这两个东西,过程就不说了
  • 然后就是在源码目录先使用doxygen -g生成一个叫 ‘Doxyfile’ 的Doxygen的配置文件

  • 然后就是修改配置文件,里面都有介绍各个选项的功能,这里主要修改一下几个。

    HAVE_DOT               = YES
    EXTRACT_ALL            = YES
    EXTRACT_PRIVATE        = YES
    EXTRACT_STATIC         = YES
    CALL_GRAPH             = YES
    
  • 然后直接doxygen Doxyfile就可以看到多了一个html和latex文件夹

  • 我是在latex文件下面直接make生成的pdf(也可以直接就看html了)

不过,如果项目特别大,这里可能需要跑一会儿(因为生成的图太多了)

效果,还不错吧(不够清晰可能是因为截图。。。)