web-dev-qa-db-fra.com

Contenu d'une bibliothèque statique

J'ai une bibliothèque statique, disons mystaticlib.a. Je veux voir son contenu, comme le nombre de fichiers objets à l'intérieur.

Comment puis-je faire cela sur gcc?

44
Prasoon Saurav

Sur gcc, utilisez ar -t.

-t option de gnu archiver (ar) écrit une table des matières de l'archive dans la sortie standard. Seuls les fichiers spécifiés par les opérandes de fichiers doivent être inclus dans la liste écrite. Si aucun opérande de fichier n'est spécifié, tous les fichiers dans l'archive doivent être inclus dans l'ordre de l'archive.

Plus d'informations ici .

78
Prasoon Saurav

Vous pouvez voir le contenu (les fichiers .o qui y sont entrés) et les symboles définis en utilisant nm. S'il contient du code C++, vous devez utiliser le -C option pour démêler les noms des symboles:

nm -C libschnoeck.a | less
28
Jens Gustedt

Sur un Mac, utilisez simplement

nm libschnoeck.a | less

Il n'y a pas -C option avec la version Mac de nm.

14
kakyo

Toutes les réponses ci-dessus sont correctes. Je fournis juste une URL pour plus d'informations sur la commande "nm".

Vous pouvez vous référer au site Web mentionné ci-dessous.

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

1
Nilesh Kumar

Il est juste tombé sur ceci:

Vous pouvez ouvrir une archive (.a) avec 7Zip. Fonctionne également pour les fichiers objets dans l'archive. Liste de toutes sortes de contenus comme .text, .bss, .data, Etc. avec leur offset, length, type, ... De plus, il est possible de tout déballer, en utilisant un éditeur hexadécimal ou un bloc-notes ++ pour afficher le contenu. J'ai testé cela avec une archive créée avec GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi- Toolchain et 7Zip 16.04 (64-bit)

0
GreenBærg