咖啡的分割错误

时间:2015-04-16 07:13:10

标签: cuda makefile osx-mavericks dylib caffe

Mac OS 10.9,OpenCV 2.4.11,CUDA 7.0, 所有env标志设置为libc ++

$sudo make runtest    
.build_release/tools/caffe
dyld: Library not loaded: @rpath/libcudart.7.0.dylib
  Referenced from: /Users/deepsamal/Desktop/Research/caffe/.build_release/tools/caffe
  Reason: image not found
make: *** [runtest] Trace/BPT trap: 5

因为这可能与库环境变量有关。 以下是我所有的env变量 - $ DYLD_LIBRARY_PATH = / usr / local / cuda / lib

$ LD_LIBRARY_PATH = /usr/local/cuda/lib:/opt/intel/composer_xe_2015.2.132/mkl/lib /

$ DYLD_FALLBACK_LIBRARY_PATH = /usr/local/cuda/lib:/Developer/NVIDIA/CUDA-7.0/lib:/Users/deepsamal/anaconda/lib:/usr/local/lib:/usr/lib:/opt/intel/composer_xe_2015.2.132/ MKL / LIB /:

同时 -

make all
make test

正在运行且没有错误,这意味着库已链接但未动态加载。

不能弄清楚可能是什么原因?

任何帮助表示感谢。

编辑:试图查看libcudart库的运行时链接。

$ otool -L /usr/local/cuda/lib/libcudart.7.0.dylib
/usr/local/cuda/lib/libcudart.7.0.dylib:
    @rpath/libcudart.7.0.dylib (compatibility version 0.0.0, current version 7.0.29)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
编辑:我试图找到libcaffe.so的所有软链接,似乎cuda libs和cudnn的路径没有解决,这似乎是问题。

otool -L ~/Desktop/Research/caffe/build/lib/libcaffe.so 
/Users/deepsamal/Desktop/Research/caffe/build/lib/libcaffe.so:
@rpath/libcaffe.so (compatibility version 0.0.0, current version 0.0.0)
@rpath/libcudart.7.0.dylib (compatibility version 0.0.0, current version 7.0.29)
@rpath/libcublas.7.0.dylib (compatibility version 0.0.0, current version 7.0.29)
@rpath/libcurand.7.0.dylib (compatibility version 0.0.0, current version 7.0.29)
/usr/local/lib/libglog.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/lib/libprotobuf.9.dylib (compatibility version 10.0.0, current version 10.1.0)
/usr/local/lib/libleveldb.1.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/lib/libsnappy.1.dylib (compatibility version 4.0.0, current version 4.0.0)
/usr/local/lib/liblmdb.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/lib/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
libhdf5_hl.9.dylib (compatibility version 10.0.0, current version 10.0.0)
libhdf5.9.dylib (compatibility version 10.0.0, current version 10.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/usr/local/opt/opencv/lib/libopencv_core.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
/usr/local/opt/opencv/lib/libopencv_highgui.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
/usr/local/opt/opencv/lib/libopencv_imgproc.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
/usr/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libcudnn.6.5.dylib (compatibility version 0.0.0, current version 6.5.48)
/usr/local/lib/libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0)
libmkl_rt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

2 个答案:

答案 0 :(得分:2)

设置DYLD_FALLBACK_LIBRARY_PATH变量至少为我解决了这个问题。我只需要添加/usr/local/cuda/lib作为第一条路径(正如您所做的那样)

export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/lib:/usr/lib:/Developer/NVIDIA/CUDA-7.0/lib:

或记录在案here

答案 1 :(得分:0)

由于DYLD_LIBRARY_PATH,在执行时OSX工具有一个可怕的混乱 我认为这种黑客应该有效:

DYLD_LIBRARY_PATH=''; make runtest