我尝试使用的库是 NiTE2 ,我已成功包含&链接OPENNI2和libfreenect驱动程序。以下是错误消息:
dyld: Library not loaded: libNiTE2.dylib
Referenced from: /Users/yangwang/Documents/cinder_projects/basic/xcode/build/Debug/basic.app/Contents/MacOS/basic
Reason: image not found
注意: 关于相同的错误消息,有很多类似的问题。但他们都没有帮助我的情况。
我已经尝试但没有工作的一些事情:
我尝试将dylib文件添加到嵌入式二进制文件中,如下所示:dyld: Library not loaded, Reason: image not found
我还确保为lib添加了正确的搜索路径,并在库搜索路径中正确设置,如下所示: Eclipse on Mac dyld: Library not loaded: Image not found
所有与openni2和libfreenect相关的dylib都没有问题。
以下是我的设置图片:
XCode v:9.3.1 Mac os v:10.13.4
---- ----- UPDATE
我在构建阶段screenshot here中添加了一些复制文件设置,包括include和lib文件夹中的所有内容。这并没有解决我的问题(尚未)。然后,在构建之后,我去了myapp.app/Contents/MacOS
并使用./myapp
来运行构建。它神奇地运行并找到了所有的库!我不太明白为什么,希望有人能解释。
答案 0 :(得分:0)
libNite2.dylib与基本可执行文件链接在同一文件夹中。
您可以使用@executable_path
指向dylib:这样,双击该文件即可。
可以使用installname_tool
更改它:
cd /Users/yangwang/Documents/cinder_projects/basic/xcode/build/Debug/basic.app/Contents/MacOS/
然后
install_name_tool -change libNiTE2.dylib @executable_path/libNiTE2.dylib basic
。
当您双击.app文件时,手指交叉将起作用。
您可能希望将此作为Xcode后编译中的额外步骤添加,以避免每次更改代码时都必须输入此内容。这些方面的东西:请记住,屏幕截图实际上来自OpenFrameworks,而不是Cinder项目,但你应该在XCode中有一个类似的视图(某些变量可能不同)。
另一方面注意:根据您的屏幕截图,看起来OpenNI与/usr/local/opt/openni2
(猜测自制语法符号链接)相关联。这将在您的机器上运行,但不能在另一台Mac上运行,除非您也通过自制程序安装OpenNI2(否则,如果OpenNI库被复制到可执行文件,您可以考虑为这些设置可执行的相对路径)。