2011-01-19 52 views
3

我想了解一个相当大的C++项目的源代码。源代码不是用IDE写的,所以我没有“goto”按钮直接进入函数定义。在C++中使用调用查找函数定义

例如:

srand(); 

我想搞清楚究竟在何处函数srand()函数的定义。

我能想出的唯一方法是手动检查所有头文件包括递归地查找声明和定义的相应文件。

这是一个linux环境,源代码用g ++编译(使用cmake)。

+5

最简单的事情可能是在现代IDE中进行编译,除非获取浏览信息。 – 2011-01-19 06:58:59

回答

4

查看ctags程序。

ctags生成一个文件,其中包含代码中使用每个标识符的位置信息。然后可以使用您选择的编辑器的插件,这将允许您跳转到任何标识符的定义。 (非常成熟的Vim和​​Emacs存在ctags插件,可能也适用于大多数其他流行的编辑器。)

2

如果您使用的是VI,您可以在手册页中打开它,如果此字有一个。我相信它自动设置为在男人(3)搜索,但我不是100%确定。至少这样你可以知道它是否是系统功能。

另一种选择是使用Doxygen设置调用图并让它生成源代码(即使没有评论)。通过调用图,您可以轻松地从每个功能的来源中找出问题。