Библиотека не загружена: ../../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, чтобы изменить эти относительные пути на реальные.

Другие вопросы по тегам