库未加载:../../ Bin /Release / libXnVNite_1_4_0.dylib

时间:2011-11-03 13:09:57

标签: opencv qt-creator 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上工作

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

为了解决这个问题,我将现有的libXnVNite.dylib重命名为libXnVNite_1_4_0.dylib,并创建了一个相对于我的应用程序的文件夹/ bin / release,并将文件存入其中。它有效,但我认为它远非一个好的解决方案。

答案 1 :(得分:0)

更优雅的解决方案是在该相对文件夹中创建符号链接。 ../../Bin/Release/libXnVNite_1_4_0.dylib - > /usr/lib/libXnVNite.dylib

以及所有有问题的库。

这对我有用,但现在它已经工作了......

更优雅的解决方案是使用install_name_tool将这些相对路径更改为真实路径。