为 c++ 生成依赖关系图 codes/projects

Generate a dependency diagram for c++ codes/projects

我有大量的 C++ 代码需要从 github 中探究,如果我能为代码库生成依赖关系图,那将会很有帮助。理想情况下,我想知道什么函数触发代码中的其他函数以及它们位于何处。有没有 program/software 可以做到这一点? 谢谢

这叫做call graph. One option is cflow together with pycflow2dot and dot. More options can be found at:

示例 C 文件:

/*
 * simple demo for pycflow2dot, use with:
 *    cflow2dot -i example.c -f png
 * for help:
 *    cflow2dot -h
 */

#include <stdio.h>

void say_hello(char *s)
{
    printf(s);
}

void hello_1()
{
    say_hello("Hello 1 !\n");
}

void hello_2()
{
    say_hello("Hello 2 !\n");
}

int main(void)
{
    hello_1();
    hello_2();
}

从这个文件,使用命令:

cflow2dot -i example.c -f png

生成如下图像: