我正在從openkinect的網站進行簡單安裝以使用xbox kinect。問題是沒有OSX發行版,並且假定自制軟件會爲您安裝。如何更改OS X上的RPATH
在安裝的最後一步,我找到了一個有用的線索,說明我的安裝有什麼問題。
我被網站告知。 「如果你有鏈接的問題,你必須改變的每個libfreenect LIB [使用以下命令]將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
的庫,這使得這個問題更容易解決。
任何關於如何正確執行上面第一塊代碼的幫助將會很有幫助!
注子(類似的問題):
- https://openkinect.org/wiki/Getting_Started#Manual_Build_under_OSX
- CMake warnings under OS X: MACOSX_RPATH is not specified for the following targets
- Can you please help me understand how Mach-O libraries work in Mac Os X?