web-dev-qa-db-ja.com

静的ライブラリの内容

静的ライブラリがあります。たとえば、mystaticlib.a。内部のオブジェクトファイルの数など、その内容を確認したい。

Gccでこれを行うにはどうすればよいですか?

44
Prasoon Saurav

Gccでは、ar -tを使用します。

gnu archiver(ar)-tオプションは、アーカイブの目次を標準出力に書き込みます。 fileオペランドで指定されたファイルのみが記述リストに含まれます。ファイルオペランドが指定されていない場合、アーカイブ内のすべてのファイルはアーカイブの順序で含まれます。

詳細はこちら

78
Prasoon Saurav

nmを使用して、内容(その中に入った.oファイル)および定義されたシンボルを表示できます。これにC++コードが含まれている場合は、-Cオプションを使用してシンボル名をデマングルする必要があります。

nm -C libschnoeck.a | less
28
Jens Gustedt

Macでは、単に使用します

nm libschnoeck.a | less

NmのMacバージョンには-Cオプションはありません。

14
kakyo

上記の答えはすべて正しいです。 「nm」コマンドの詳細については、URLを提供しています。

下記のウェブサイトを参照できます。

https://www.mkssoftware.com/docs/man1/nm.1.asp

1
Nilesh Kumar

これにつまずいただけです:

7Zipでアーカイブ(.a)を開くことができます。アーカイブ内のオブジェクトファイルに対しても機能します。 _.text, .bss, .data,_などのすべての種類のコンテンツを_offset, length, type,_でリストします...さらに、16進エディターまたはnotepad ++を使用してコンテンツを表示し、すべてをアンパックできます。 _GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-_ Toolchainと7Zip 16.04 (64-bit)で作成されたアーカイブでこれをテストしました

0
GreenBærg