0

当我用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 上工作

知道如何解决这个问题吗?

4

2 回答 2

0

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

对于所有有问题的库,依此类推。

这对我有用,但现在它不再工作了......

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

于 2013-03-17T08:59:27.430 回答
0

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

于 2011-11-10T21:44:36.113 回答