Mac SDK 库:里面有什么?foo.dylib vs foo.A.迪利布 vs 福。B.迪利布

  • 本文关键字:vs foo dylib SDK Mac macos cocoa mach
  • 更新时间 :
  • 英文 :


我在SDK中四处寻找,试图了解实际包含的内容。

我注意到dylib有时有多个版本,例如

ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib
...
libBSDPClient.A.dylib
libBSDPClient.dylib
...
libSystem.B.dylib
libSystem.dylib
...

这些.A和.B版本是干什么的?谁在用什么?

A和B等表示API版本。您看到其中两个的原因是,非版本化的(例如libSystem.dylib)实际上是到版本化的符号链接(读作:快捷方式、别名)。你可以看到,如果你做ls-F(见链接@s)或ls-l(见->,例如

lrwxr-xr-x@1根轮8月4日21日19:59/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/DDeveloper/SDKs/MacOSX10.8.sdk/usr/lib/libBSDClient.dylib->libBSDClient.A.dylib

所以这里没什么好担心的。基本上,如果有更新的版本,您可以简单地链接到它,而不是旧的版本(使用ln-s)。这是一个古老的UN*X技巧,不仅在Mac操作系统中(也在.so文件上的Linux中使用)。大多数是版本A,顺便说一句,libSystem是B(自OS X诞生以来,它已经修改了很多)

最新更新