0

C++ Lib ファイルはバイナリですか、それともすべてのバイナリ ファイルを含む zip ファイルのようなコンテナーのようなものですか?

ライブラリ ファイル (.lib) を開いて、jar ファイルを開いて人間が読める方法で調べる方法と同様に、ライブラリ ファイル (.lib) を開いてその中にあるファイルに関する詳細情報を取得できるかどうか知りたいからです。

libパスにいくつかのライブラリを追加していて、参照しようとしているクラスがlibファイルに含まれているかどうかを知りたいので、私は尋ねます。

4

2 に答える 2

1

lib ファイルには、ライブラリによって提供されるすべてのコンパイル ユニットのコンパイル済みバイナリが含まれています。C++Builder にタグを付けたので、OMFライブラリがあると思います。ライブラリ内のすべての関数シグネチャなど、これらから非常に多くの情報を簡単に取得できます。

C++Builderには、ライブラリの内容を人間が読める形式で出力するTDumpというツールが付属しています。これは、C++Builder インストール ディレクトリの下の bin ディレクトリにあります。

次の例は、TDump を使用して、コマンド ラインからライブラリの内容をダンプする方法を示しています。

"C:\Program Files\Embarcadero\RAD Studio\10.0\bin\tdump.exe" library.lib > library-dump.txt

出力で「THEADR」を検索すると、ライブラリ内の各オブジェクト モジュールを見つけることができます。THEADR 行の後には、オブジェクトがコンパイルされたときに使用されたすべての依存ファイル (基本的にはインクルード) のリストが表示されます。依存関係の後には、デマングルされた関数シグネチャを含むシンボルがあります。

于 2013-04-05T19:09:14.820 に答える