如何确定 OS X 上的 .dylib 的版本信息?

如何确定 OS X 上的 .dylib 的版本信息?

在 OS X 中使用 GUI 或 CLI 工具如何找出给定 dylib 的版本信息?

答案1

您可以使用otool( /usr/bin/otool) 查看 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)

它并不总是完美的,但如果您提供任何您想弄清楚的具体案例,我可以提供进一步的建议。

不幸的是,它似乎otool不是默认安装的一部分,但可以作为 Xcode 开发人员工具的命令行工具模块的一部分使用。有两种方法可以获取otool

第一种方法可能是最简单的,但需要在 100 MB 的命令行工具上下载 1.5 GB 的 Xcode.app。这种方法可能的好处是可以帮助自动下载和安装命令行工具。第二种方法需要在以下网址设置一个免费的开发者帐户(除非您已经有一个付费帐户):https://developer.apple.com/programs/register/(注意:选项 1 甚至可能需要这个,我不确定,因为我已经是付费会员了),然后连接到https://developer.apple.com/downloads/并从下载列表中下载适合 Xcode 的命令行工具。

如果你选择第一种方式,请在应用商店中获取 Xcodehttps://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12

答案2

获取可执行文件版本号的另一种方法Info.plist是使用以下命令:

otool -P /path/to/file

我举了一个实际的例子在 SO 上

相关内容