【问题标题】:Unable to find hdf5 libraries when building pycaffe构建pycaffe时找不到hdf5库
【发布时间】:2016-06-14 18:42:03
【问题描述】:

运行时

make pycaffe

我们最终会丢失 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

现在我意识到这太过分了..但它们一次添加一个 - 然后我们在添加另一个之前重试了 make pycaffe.. 我们只是想确保 缺少 hdf5 库不是核心问题。

更新响应@jon提供的答案

 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

【问题讨论】:

  • caffe.bin 演示是否工作,它是使用“make”命令创建的。是否创建成功?
  • dpkg -L libhdf5-dev | grep so的输出是什么

标签: python ubuntu hdf5 caffe pycaffe


【解决方案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.so和libhdf5_hl.so)在Makefile.config的LIBRARY_DIRS中

【讨论】:

  • 更新的 OP:是的,它们都到位了。
  • @javadba 你应该根据你的输出添加/usr/lib/x86_64-linux-gnu/hdf5/serial
猜你喜欢
  • 1970-01-01
  • 2018-12-02
  • 2016-01-24
  • 2014-07-21
  • 1970-01-01
  • 2020-01-29
  • 2018-07-19
  • 2015-10-16
  • 1970-01-01
相关资源
最近更新 更多