Je sais qu'il existe une commande qui répertorie les bibliothèques et les versions respectives auxquelles un logiciel était lié.
Quelque chose avec ld ou libtool?
Mais je ne m'en souviens pas. J'ai passé du temps sur Google mais je n'ai rien trouvé d'utile.
La mise à jour
ldd <binary>
aiderait Linux, ( de @ Ernelli ) alors que je trouvais que otool -L <binary>
cela faisait quelque chose de similaire sur MacOS X.
linux
macos
shared-libraries
er4z0r
la source
la source
Réponses:
Essayez ldd binary-exec
Exemple:
la source
Pour trouver ce dont il a directement besoin:
ldd
comme mentionné ailleurs, affichera toutes les bibliothèques directes et indirectes - tout ce dont il a besoin au moment de l'exécution. Cela peut ne pas être une liste complète, puisque vous pouvez ouvrir dynamiquement des choses avec dlopen (), mais cela devrait fonctionner 99% du temps.ld et libtool sont utilisés au moment de la compilation / du lien. Ils ne sont pas utiles une fois que vous avez une application.
EDIT Je peux voir plus tard que vous avez posé des questions sur OSX, mais je souhaite ajouter à ma réponse sur les outils Linux:
Une chose que j'ai oublié de mentionner, il y a longtemps. vous avez demandé des versions. Ni
ldd
nereadelf
répondra à la question « quelle version ». Ils vous indiqueront le nom de fichier de la bibliothèque que vous recherchez et la convention de dénomination peut contenir des informations sur la version, mais rien ne l’impose. Les symboles peuvent être versionnés, et vous devriez avoir beaucoup plus de niveaux inférieursnm
pour les voir,la source
Une autre façon serait d'utiliser objdump.
Cela montre toutes les dépendances nécessaires uniquement pour ce binaire. Très utile.
la source