Jak mogę określić informacje o wersji .dylib w systemie OS X?


12

W OS X, używając narzędzia GUI lub CLI, jak mogę znaleźć informacje o wersji danej dylib?

Odpowiedzi:


11

Możesz użyć otool( /usr/bin/otool), aby zobaczyć nazwy i numery wersji bibliotek współużytkowanych, których używa plik obiektowy 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)

Nie zawsze jest to idealne rozwiązanie, ale jeśli podasz jakieś konkretne przypadki, które próbujesz rozgryźć, mógłbym doradzić dalej.

Niestety wygląda na to, że otoolnie jest częścią domyślnej instalacji, ale jest dostępna jako część modułu narzędzi wiersza poleceń narzędzi programistycznych Xcode. Istnieją 2 sposoby zdobycia otool:

Pierwszy sposób może być najłatwiejszy, ale będzie wymagał pobrania Xcode.app o wartości 1,5 GB na 100 MB Narzędzi wiersza poleceń. Możliwą zaletą tej metody jest to, że może pomóc zautomatyzować pobieranie i instalację narzędzi wiersza poleceń. Drugi sposób wymaga założenia bezpłatnego konta programisty (chyba że masz już płatne) na stronie https://developer.apple.com/programs/register/ (UWAGA: opcja 1 może nawet tego wymagać, nie jestem pewien, ponieważ jestem już płatnym członkiem), a następnie połącz się z https://developer.apple.com/downloads/ i pobierz odpowiednie narzędzia wiersza polecenia dla Xcode z listy pobrań.

Jeśli wybierzesz pierwszą trasę, zdobądź Xcode w sklepie z aplikacjami pod adresem https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 .


Dzięki! To wydaje się działać na .dylibs. Próbowałem go na / opt / local / bin / ffmpeg, ale nie podaje on samego numeru wersji ffmpeg. Czy można uzyskać numer wersji pliku wykonywalnego? ( --versionPreferowane byłoby ogólne rozwiązanie, które nie korzysta z jakiegoś argumentu polecenia, takiego jak itp.)
HairOfTheDog,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.