2012-03-13 3 views
2

У меня есть библиотека, построенная на OSX 10.6. Он отлично работает с приложениями на этой версии MacOS. В OSX 10.7 он не работает правильно, потому что он не может найти все свои зависимости должным образом, и я подозреваю, что ему есть что-то с ним, думая, что оно связано с самим собой. Почему screen.so показывают, когда я запускаю «otool -L» на экранах. Это что-то, что я должен удалить, и если да, то как?OSX: DLL имеет ссылку на себя?

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

Выход просто прекрасно - первая строка просто идентификатор строки динамической библиотеки, она показывает, что будет использоваться во время компоновки для встраивания в исполняемый файл. Например:

$ 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 - это вы уверены, что вам это нужно?

+0

Благодарим вас, я отправил wx-библиотеку. Приятно знать, что видеть первую строку в порядке. –

Смежные вопросы