Библиотека не загружена: ../../Bin/Release/libXnVNite_1_4_0.dylib
Когда я делаю проект с openni. И есть проблема, когда я делаю свой make-файл.
Starting /Users/olivierjanssens/Documents/ICT/Master/Thesis/Code/mysuperdemo/qtcreator- build/mysuperdemo...
dyld: Library not loaded: ../../Bin/Release/libXnVNite_1_4_0.dylib
Referenced from: /Users/olivierjanssens/Documents/ICT/Master/Thesis/Code/mysuperdemo/qtcreator-build/mysuperdemo
Reason: image not found
The program has unexpectedly finished.
Мой файл cmake
cmake_minimum_required(VERSION 2.6)
PROJECT(mysuperdemo)
SET(NESTK_USE_OPENNI 1)
ADD_SUBDIRECTORY(nestk)
## nestk/UseNestk.cmake.in defines variable to use nestk.
## It itself includes nestk/deps/cmake/UseEmbeddedNestkDeps.cmake that
## contains most of the cmake find packages commands.
INCLUDE("${nestk_BINARY_DIR}/UseEmbeddedNestk.cmake")
ADD_EXECUTABLE(mysuperdemo mysuperdemo.cpp)
TARGET_LINK_LIBRARIES(mysuperdemo nestk)
это создает мой make-файл, который я затем делаю.
Файл, указанный в сообщении об ошибке, отсутствует в моей системе ( ../../Bin/Release/libXnVNite_1_4_0.dylib). Хотя файл libXnVNite.dylib есть, но его нет в папке../../Bin/Release/, чего нет. Я работаю на OSX 10,7
Любая идея, как я могу это исправить?
2 ответа
Чтобы решить эту проблему, я переименовал существующий libXnVNite.dylib в libXnVNite_1_4_0.dylib, создал папку /bin/release относительно моего приложения и поместил в нее файл. Это работает, но я думаю, что это далеко от хорошего решения.
Более элегантным решением было бы создание символических ссылок в этой относительной папке. ../../Bin/Release/libXnVNite_1_4_0.dylib -> /usr/lib/libXnVNite.dylib
и так далее для всех проблемных библиотек.
Когда-то это работало для меня, но теперь это работает больше...
Еще более элегантным решением было бы использовать install_name_tool, чтобы изменить эти относительные пути на реальные.