相关疑难解决方法(0)

自 Mac OS 10.11 El Capitan 起具有系统完整性保护的 DYLD_LIBRARY_PATH 技巧的替代方案

这是我所拥有的:

  • Mac OS 10.11 El Capitan
  • python 2.7.12,从python.org下安装 /Library/Frameworks/Python.framework/
  • PyCharm 2016.2.3
  • vtk 7.1.0

这是我所做的:

  • 在本地构建一个 python 模块。就我而言,这是vtk。有关摘要,请参阅我配置 vtk 的 CMake 调用。

    cmake -G Ninja .. -DCMAKE_BUILD_TYPE=Release -DVTK_WRAP_PYTHON=ON -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX="/opt/dev/versions/vtk/vtk-7.1.0-shared" -DPYTHON_INCLUDE_DIR="/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/" -DPYTHON_LIBRARY="/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib"
    
    Run Code Online (Sandbox Code Playgroud)
  • 将 python 包安装在 python 可以找到的位置。就我而言,这是/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 请注意,我需要DYLD_LIBRARY_PATH通过库所在的位置扩展/opt/dev/versions/vtk/vtk-7.1.0-shared/lib/.

  • 如果我从终端启动python,我可以成功导入vtk。

    import vtk
    v = vtk.vtkVersion()
    print v.GetVTKVersion()
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果我尝试在 PyCharm 的 python 控制台中导入 vtk,我会收到以下错误:

    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2881, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-2-b7e11aadda62>", line 1, in <module> …
    Run Code Online (Sandbox Code Playgroud)

python macos dyld vtk

6
推荐指数
1
解决办法
3634
查看次数

如何在OS X上更改RPATH

我正在从openkinect的网站上进行简单的安装,以使用xbox kinect.问题是没有OSX发行版,并假设自制软件将为您安排.

在安装的最后一步,我找到了一个有用的线索,说明我的安装有什么问题.

我被网站告知."如果链接有问题,则必须使用以下命令更改每个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
Run Code Online (Sandbox Code Playgroud)

我的rpath肯定设置不正确.当用CMake构建时,这个次要消息肯定证实了我的怀疑.

CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy …
Run Code Online (Sandbox Code Playgroud)

macos path rpath cmake openkinect

6
推荐指数
1
解决办法
3356
查看次数

标签 统计

macos ×2

cmake ×1

dyld ×1

openkinect ×1

path ×1

python ×1

rpath ×1

vtk ×1