2011-01-19 11 views
3

かなり大きなC++プロジェクトのソースコードを理解しようとしています。ソースはIDEで書かれていないので、関数定義に直接進むための "goto"ボタンはありません。例えばC++での呼び出しを使用した関数定義の検索

srand(); 

私は、関数にsrand()が定義されている場所を正確に知りたいです。

私が思いつくことができる唯一の方法は、すべてのヘッダを手動でチェックして、定義のための宣言と対応するファイルを再帰的に見つけることです。

これはLinux環境で、ソースはg ++(cmakeを使用)でコンパイルされています。

+5

最も簡単なことは、ブラウズ情報を取得する以外の理由がない限り、最新のIDEでコンパイルすることです。 –

+0

'srand'のところでは、以下を参照してください:http://linux.die.net/man/3/srand –

+0

私は上記の#Johnをエコーし​​ます。なぜなら、viで書かれたからといってあなたが見ることができないわけではありません/ IDEで編集 - Netbeansは、既存のメイクファイルなどをピックアップするのに十分なほどスマートになります。それはインデックスを作成し、あなたが望むものを何でもすることができます... – Nim

答えて

4

ctagsプログラムを参照してください。

ctagsは、各識別子が使用されるコード内の位置に関する情報を含むファイルを生成します。エディタのプラグインを使用して、任意の識別子の定義にジャンプすることができます。 (非常に成熟ctagsプラグインは、同様のVimとEmacsのための、そしておそらく他のほとんどの有名なエディタのために存在する。)

2

あなたはこの単語の1がある場合はshift+k、manページで開きますできVIを使用している場合。私はそれが自動的にman(3)で検索するように設定されていると思うが、私は100%確実ではない。少なくともこのようにすれば、システム機能であるかどうかを知ることができます。

また、Doxygenを使用してコールグラフを設定し、ソースが生成されるようにすることもできます(コメントがない場合でも)。コールグラフを使用すると、各機能がどこから来ているのかを簡単に特定できます。

関連する問題