#opencv #qt-creator #kinect #dyld #openni
#opencv #qt-создатель #kinect #dyld #openni
Вопрос:
Когда я делаю проект с openni. И у меня проблема, когда я создаю свой makefile.
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)
это генерирует мой makefile, который я затем создаю.
Файл, упомянутый в ошибке, отсутствует в моей системе ( ../../Bin/Release/libXnVNite_1_4_0.dylib). Хотя файл libXnVNite.dylib есть, но его нет в папке ../../Bin/Release/, которой не существует. Я работаю на osx 10.7
есть идеи, как я могу это исправить?
Ответ №1:
Чтобы решить эту проблему, я переименовал существующий файл libXnVNite.dylib в libXnVNite_1_4_0.dylib и создал папку /bin/ release относительно моего приложения и поместил в нее файл. Это работает, но я думаю, что это далеко не хорошее решение.
Ответ №2:
Более элегантным решением было бы создать символические ссылки в этой относительной папке. ../../Bin/Release/libXnVNite_1_4_0.dylib -> /usr/lib/libXnVNite.dylib
и так далее для всех проблемных библиотек.
Это сработало однажды для меня, но теперь это просто работает больше…
Еще более элегантным решением было бы использовать install_name_tool для изменения этих относительных путей на реальные.