【发布时间】:2016-10-30 03:42:12
【问题描述】:
我正在从 openkinect 的网站进行简单的安装以使用 xbox kinect。问题是没有 OSX 发行版,并且假定 homebrew 会为您完成安装。
在安装的最后一步中,我发现了一条有用的线索,说明我的安装出了什么问题。
网站告诉我。 “如果您在链接时遇到问题,则必须更改每个 libfreenect 库的 rpath [使用以下命令]:”
for i in /opt/local/lib/libfreenect*.dylib; do sudo install_name_tool -id $i $i; done
sudo install_name_tool -change libfreenect.0.2.dylib /opt/local/lib/libfreenect.0.2.dylib /opt/local/lib/libfreenect_sync.dylib
sudo install_name_tool -change libfreenect.0.2.dylib /opt/local/lib/libfreenect.0.2.dylib /opt/local/lib/libfreenect_cv.dylib
sudo install_name_tool -change libfreenect_sync.0.2.dylib /opt/local/lib/libfreenect_sync.0.2.dylib /opt/local/lib/libfreenect_cv.dylib
for i in glview regview hiview glpclview tiltdemo record cppview cvdemo; do sudo install_name_tool -change libfreenect.0.2.dylib /opt/local/lib/libfreenect.0.2.dylib /opt/local/bin/$i; sudo install_name_tool -change libfreenect_sync.0.2.dylib /opt/local/lib/libfreenect_sync.0.2.dylib /opt/local/bin/$i; done
我的 rpath 肯定设置不正确。使用 CMake 构建时的第二条信息肯定证实了我的怀疑。
CMake Warning (dev):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
MACOSX_RPATH is not specified for the following targets:
fakenect
freenect
freenect_sync
我遇到的唯一问题是上面给我的命令不起作用。部分原因是我的 Mac 将我的所有文件都放在了/usr/local/lib/ 而不是/opt/local/lib/ 下。我将一些文件从usr 复制到opt,它减少了链接错误的数量,但我还剩下一些。同样,它们都与未加载到 opt 的库有关,这使得这个问题更容易解决。
任何有关如何正确执行上述第一段代码的帮助都会有所帮助!
子注释(类似问题):
【问题讨论】:
标签: macos path cmake openkinect rpath