OSX:DLL有自己的引用?

时间:2012-03-13 19:02:47

标签: macos

我有一个基于OSX 10.6构建的库。它适用于该版MacOS上的应用程序。在OSX 10.7上,它运行不正确,因为它无法正确找到所有依赖项,我怀疑它有一些与之相关的东西,认为它与自身相关联。为什么screens.so会在screens.so上运行“otool -L”时显示?这是我应该删除的东西,如果是,那该怎么办?

screens.so:
    screens.so (compatibility version 0.0.0, current version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0)
    /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 1327.73.0)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libwx_macud-2.8.0.dylib (compatibility version 2.6.0, current version 2.8.4)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0)

1 个答案:

答案 0 :(得分:1)

输出很好 - 第一行只是动态库的ID字符串,它显示了在链接时嵌入到可执行文件中的内容。例如:

$ otool -L /usr/lib/libz.dylib      
/usr/lib/libz.dylib:
    /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 159.0.0)

这表明链接-lz将导致二进制文件中的/usr/lib/libz.1.dylib加载命令。

但回到你的问题 - 它与第一行没有任何关系,它与这一行有关:

    /usr/lib/libwx_macud-2.8.0.dylib (compatibility version 2.6.0, current version 2.8.4)

链接Lion中不存在的库 - 您确定需要吗?