2016-03-02 103 views
0

时当运行无法建立pycaffe

make pycaffe 

我们缺少hdf5库结束了,却HDF5库。

CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp 
/usr/bin/ld: cannot find -lhdf5_hl 
/usr/bin/ld: cannot find -lhdf5 
collect2: error: ld returned 1 exit status 
Makefile:502: recipe for target 'python/caffe/_caffe.so' failed 
make: *** [python/caffe/_caffe.so] Error 1 

请注意,在这个ubuntu 15.10系统上已经安装了这些库的所有可能的组合。

$ dpkg --get-selections | grep hdf5 
hdf5-helpers     install 
libhdf5-10:amd64    install 
libhdf5-cpp-10:amd64    install 
libhdf5-dev     install 
libhdf5-mpi-dev     install 
libhdf5-mpich-10:amd64    install 
libhdf5-mpich-dev    install 
libhdf5-openmpi-10:amd64   install 
libhdf5-openmpi-dev    install 
libhdf5-serial-dev    install 

现在我认识到是矫枉过正..但它们被添加一次一个 - 然后我们加入另一个。我们只是想确保失踪HDF5库是不是核心之前重试make pycaffe问题。

更新在响应所提供的答案来自@乔恩

dpkg -L libhdf5-dev | grep so 
/usr/lib/x86_64-linux-gnu/libhdf5_cpp.so 
/usr/lib/x86_64-linux-gnu/libhdf5_serial.so 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl.so 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_fortran.so 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl_cpp.so 
/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5hl_fortran.so 
/usr/lib/x86_64-linux-gnu/libhdf5_hl_cpp.so 
/usr/lib/x86_64-linux-gnu/libhdf5_serial_fortran.so 
/usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so 
/usr/lib/x86_64-linux-gnu/libhdf5_serialhl_fortran.so 

而在Makefile.config

LIBRARY_DIRS := /usr/opt/libsr $(PYTHON_LIB) 
    /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu 
+0

是否使用'make'命令创建了caffe.bin演示程序。那个创建成功了吗? –

+0

'dpkg -L libhdf5-dev |的输出是什么? grep so' – Jon

回答

1

运行dpkg -L libhdf5-dev | grep so应该输出:

/usr/lib/x86_64-linux-gnu/libhdf5_hl.so 
/usr/lib/x86_64-linux-gnu/libhdf5hl_fortran.so 
/usr/lib/x86_64-linux-gnu/libhdf5_fortran.so 
/usr/lib/x86_64-linux-gnu/libhdf5_hl_cpp.so 
/usr/lib/x86_64-linux-gnu/libhdf5_cpp.so 
/usr/lib/x86_64-linux-gnu/libhdf5.so 

确保路径/usr/lib/x86_64-linux-gnu(其中包含libhdf5.solibhdf5_hl.so)位于Makefile.configLIBRARY_DIRS

+0

更新OP:是的,他们都到位。 – javadba

+0

@javadba你应该根据你的输出添加'/ usr/lib/x86_64-linux-gnu/hdf5/serial' – Jon

+0

这样做!谢谢。 – javadba