Comment puis-je déterminer les informations de version d'un .dylib sur OS X?


12

Sous OS X, à l'aide d'une interface graphique ou d'un outil CLI, comment puis-je trouver les informations de version d'un dylib donné?

Réponses:


11

Vous pouvez utiliser otool( /usr/bin/otool) pour voir les noms et les numéros de version des bibliothèques partagées utilisées par un fichier objet Mach-O.

MacPro:~ mdouma46$ otool -L /usr/lib/libssl.0.9.7.dylib 
/usr/lib/libssl.0.9.7.dylib:
  /usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
  /usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

MacPro:~ mdouma46$ otool -L /usr/lib/libssl.0.9.8.dylib 
/usr/lib/libssl.0.9.8.dylib:
  /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

MacPro:~ mdouma46$ otool -L /usr/lib/libgutenprint.2.dylib 
/usr/lib/libgutenprint.2.dylib:
  /usr/lib/libgutenprint.2.dylib (compatibility version 4.0.0, current version 4.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
  /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

MacPro:~ mdouma46$ otool -L /usr/lib/libcurl.4.dylib 
/usr/lib/libcurl.4.dylib:
  /usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 7.0.0)
  /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP (compatibility version 1.0.0, current version 2.4.0)
  /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos (compatibility version 5.0.0, current version 6.0.0)
  /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

Ce n'est pas toujours parfait, mais si vous fournissez des cas spécifiques que vous essayez de comprendre, je pourrais vous conseiller davantage.

Malheureusement, il semble que cela otoolne fasse pas partie de l'installation par défaut, mais qu'il est disponible dans le cadre du module Outils de ligne de commande des outils de développement Xcode. Il y a 2 façons d'acquérir otool:

La première façon est peut-être la plus simple, mais nécessitera le téléchargement de 1,5 Go de Xcode.app en plus des 100 Mo des outils de ligne de commande. L'avantage possible de cette méthode est qu'elle peut aider à automatiser le téléchargement et l'installation des outils de ligne de commande. La deuxième façon nécessite la création d'un compte développeur gratuit (sauf si vous en avez déjà un payant) sur https://developer.apple.com/programs/register/ (REMARQUE: l'option 1 peut même l'exiger, je ne suis pas sûr, comme je suis déjà un membre payant), puis connectez-vous à https://developer.apple.com/downloads/ et téléchargez les outils de ligne de commande appropriés pour Xcode dans la liste des téléchargements.

Si vous choisissez la première route, obtenez Xcode dans l'App Store à https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 .


Merci! Cela semble fonctionner pour .dylibs. Je l'ai essayé sur / opt / local / bin / ffmpeg mais il ne donne pas le numéro de version de ffmpeg lui-même. Est-il possible d'obtenir le numéro de version d'un exécutable? (Une solution générique qui n'utilise pas une sorte d'argument de commande comme --versionou similaire serait préférée.)
HairOfTheDog
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.