0

約 50 の静的ライブラリ (多数のシステム ライブラリの上) にリンクする g++ でコンパイルされた実行可能ファイルがあります。それらのライブラリのどのメソッドが使用されているか、さらに重要なことに、どのメソッドが決して呼び出されないかを知りたいです。

これを提供するツールやコンパイラ フラグはありますか?

4

2 に答える 2

0

正確な意味はわかりませんが、参照されていない関数を取得したい場合は、いくつかのコンパイラ オプションがあります。

-ffunction-sections は、各関数を obj ファイル内の独自のセクションに配置するようにコンパイラに指示します。

次に、リンク時に--gc-sections および--print-gc-sectionsが未使用のセクション (関数) のガベージ コレクションを実行し、結果も一覧表示します。

完全なリストを得るために、すべての静的ライブラリを構築することができます。

于 2013-10-23T14:49:18.973 に答える
0

Linux\UNIX でツールを使用できますnm(少なくとも -g でコンパイルした場合)。

静的ライブラリを使用しているため、ライブラリからの参照されたメソッドのみが実行可能ファイルに追加されます

次のような使い方:

nm <your executable with debug info>

manページを読むこともできます。

man nm
于 2013-10-23T13:35:52.010 に答える