Wie kann ich die Versionsinformationen einer .dylib unter OS X ermitteln?

12

Wie kann ich unter OS X mithilfe einer GUI oder eines CLI-Tools die Versionsinformationen einer bestimmten Dylib herausfinden?

Hundehaare
quelle

Antworten:

11

Mit otool( /usr/bin/otool) können Sie die Namen und Versionsnummern der gemeinsam genutzten Bibliotheken anzeigen, die eine Mach-O-Objektdatei verwendet.

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)

Es ist nicht immer perfekt, aber wenn Sie bestimmte Fälle angeben, die Sie herausfinden möchten, kann ich Ihnen weitere Ratschläge geben.

Leider scheint dies otoolnicht Teil der Standardinstallation zu sein, ist jedoch als Teil des Befehlszeilentools-Moduls der Xcode-Entwicklertools verfügbar. Es gibt zwei Möglichkeiten zu erwerben otool:

Der erste Weg ist vielleicht der einfachste, erfordert jedoch das Herunterladen von Xcode.app im Wert von 1,5 GB zusätzlich zu den 100 MB der Befehlszeilentools. Der mögliche Vorteil dieser Methode besteht darin, dass das Herunterladen und Installieren der Befehlszeilentools automatisiert werden kann. Der zweite Weg erfordert die Einrichtung eines kostenlosen Entwicklerkontos (sofern Sie noch kein kostenpflichtiges Konto haben) unter https://developer.apple.com/programs/register/ (HINWEIS: Für Option 1 ist dies möglicherweise sogar erforderlich, da bin ich mir nicht sicher. Da ich bereits ein bezahltes Mitglied bin, stellen Sie eine Verbindung zu https://developer.apple.com/downloads/ her und laden Sie die entsprechenden Befehlszeilentools für Xcode aus der Liste der Downloads herunter.

Wenn Sie den ersten Weg gehen, erhalten Sie Xcode im App Store unter https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 .

NSGod
quelle
Vielen Dank! Das scheint für .dylibs zu funktionieren. Ich habe es unter / opt / local / bin / ffmpeg versucht, aber es gibt nicht die Versionsnummer von ffmpeg selbst an. Ist es möglich, die Versionsnummer für eine ausführbare Datei zu erhalten? (Eine generische Lösung, die kein Befehlsargument wie --versionoder ähnliches verwendet, wird bevorzugt.)
HairOfTheDog