2

任意の C アプリケーション (この場合は apache としましょう) について、すべてのメソッドとそれらが見つかったファイルのリストを返したいと思います。たとえば、次のようなものを見たいと思います。

int add (int a, int b)..... math.c
int subtract (int a, int b)..... math.c
int Multiply (int a, int b)..... math.c
int foo ()..... foo.c

私はこれを行い、メソッド出力のために物理的な c ファイルを手動で解析するという面倒な作業を避けたいと考えています。他の言語にはリフレクターがあることを知っています。

皆さんありがとう。

4

4 に答える 4

4

男 nm(1)

ただし、シンボル ソース ファイルは、デバッグ情報が (-g) でコンパイルされた場合にのみ使用できます。

于 2013-02-23T15:55:32.050 に答える
3

リンカーの仕事のように聞こえます。マップファイルを生成しようとしましたか? マップ ファイルの生成方法については、リンカーのドキュメントを確認してください。

于 2013-02-23T16:00:08.980 に答える
3

プラットフォームを指定しなかったため、考えられる解決策の 1 つは「ctags」プログラムです。

説明 ctags ユーティリティは、ユーザー移植性ユーティリティ オプション、ソフトウェア開発ユーティリティ オプション、および C 言語開発ユーティリティ オプションと FORTRAN 開発ユーティリティ オプションのいずれかまたは両方をサポートするシステムで提供されます。他のシステムでは、オプションです。

ctags ユーティリティは、パス名オペランドで指定された C 言語または FORTRAN ソース ファイルから、タグファイルまたはオブジェクトのインデックスを書き込みます。タグファイルには、ソース ファイル内の言語固有のオブジェクトのロケータがリストされます。ロケータは、名前、パス名、およびオブジェクト定義の検索に使用できる検索パターンまたは行番号で構成されます。認識されるオブジェクトは、詳細説明セクションで指定されます。

オプション ... -x オブジェクト名、行番号、それぞれが定義されているファイル名、およびその行のテキストのリストを生成し、これを標準出力に書き込みます。-x が指定されている場合、タグファイルは作成されません。

于 2013-02-23T15:55:40.280 に答える
3

これはctagsで行うことができます。サイトから:

Ctags は、ソース ファイルで見つかった言語オブジェクトのインデックス (またはタグ) ファイルを生成し、これらの項目をテキスト エディターやその他のユーティリティですばやく簡単に見つけることができるようにします。タグは、インデックス エントリが利用可能な言語オブジェクト (または、そのオブジェクト用に作成されたインデックス エントリ) を示します。

Ctags は、さまざまなツールと互換性があります

于 2013-02-23T15:55:56.097 に答える