Mac SDK库:那里有什么? foo.dylib vs foo.A.dylib vs foo.B.dylib

时间:2013-08-24 16:46:43

标签: 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版本是什么?谁在使用什么?

1 个答案:

答案 0 :(得分:1)

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

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

所以这里没什么值得担心的。基本上,如果有更新版本,您可以直接链接到它而不是旧版本(使用ln -s)。这是一个古老的UN * X技巧,不仅适用于Mac OS(也适用于Linux上的.so文件)。大多数是版本A,顺便说一句。但是,libSystem是B(自OS X开始以来它已被修改了很多)