0

在我的 Ubuntu 17.04 上安装(编译)Caffe(第一个版本)时,我收到以下错误:

*** 没有规则来制作目标 '/usr/lib/x86_64-linux-gnu/"libhdf5.so"',这是 'lib/libcaffe.so.1.0.0' 所需要的。停止。

在此处输入图像描述

我的电脑规格如下:

> nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA
> Corporation Built on Tue_Jan_10_13:22:03_CST_2017 Cuda compilation
> tools, release 8.0, V8.0.61

使用的 gcc:

There are 4 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path              Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-4.9   10        auto mode
  1            /usr/bin/g++-4.9   10        manual mode
* 2            /usr/bin/gcc-4.9   10        manual mode
  3            /usr/bin/gcc-5     10        manual mode
  4            /usr/bin/gcc-6     10        manual mode

OpenCV 版本:

$ pkg-config --modversion opencv
3.2.0

CUDNN版本是最新的什么v6.0

我已经在官方网站上添加了以下内容:

find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;

cd /usr/lib/x86_64-linux-gnu

sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so

sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

并修改Makefile.config为:

 USE_CUDNN := 1
 OPENCV_VERSION := 3
 CUDA_DIR := /usr/local/cuda-8.0
 BLAS := atlas
 PYTHON_INCLUDE :=  /usr/include/python2.7 /usr/local/lib/python2.7/dist-packages/numpy/core/include
 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

并且Makefile作为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

LIBRARIES += glog gflags protobuf leveldb snappy \
  lmdb boost_system boost_filesystem hdf5_hl hdf5 m \
  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_videoio

cmake但是在运行.. 或make all -j8or后仍然会出现相同的错误make pycaffe -j4

CMakeFiles/Makefile2:267:目标“src/caffe/CMakeFiles/caffe.dir/all”的配方失败 2:*** [src/caffe/CMakeFiles/caffe.dir/all] 错误 2

CMakeFiles/Makefile2:1129:目标“python/CMakeFiles/pycaffe.dir/rule”的配方失败 make 1:*** [python/CMakeFiles/pycaffe.dir/rule] 错误 2

Makefile:487:目标“pycaffe”的配方失败 make:*** [pycaffe] 错误 2

以下是执行后的相关包列表:

$ cd /usr/lib/x86_64-linux-gnu

然后:

$ ls -l | grep hdf5

结果如下:

drwxr-xr-x  3 root root      4096 May 17 06:37 hdf5
-rw-r--r--  1 root root    972640 Dec  5 08:27 libhdf5_cpp.a
lrwxrwxrwx  1 root root        22 Dec  5 08:27 libhdf5_cpp.so -> libhdf5_cpp.so.100.0.0
lrwxrwxrwx  1 root root        22 Dec  5 08:27 libhdf5_cpp.so.100 -> libhdf5_cpp.so.100.0.0
-rw-r--r--  1 root root    414392 Dec  5 08:27 libhdf5_cpp.so.100.0.0
-rw-r--r--  1 root root     13098 Dec  5 08:27 libhdf5_hl_cpp.a
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_hl_cpp.so -> libhdf5_hl_cpp.so.100.0.0
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_hl_cpp.so.100 -> libhdf5_hl_cpp.so.100.0.0
-rw-r--r--  1 root root     14736 Dec  5 08:27 libhdf5_hl_cpp.so.100.0.0
lrwxrwxrwx  1 root root        27 May 21 16:18 libhdf5_hl.so -> libhdf5_serial_hl.so.10.0.2
-rw-r--r--  1 root root   7841328 Dec  5 08:27 libhdf5_serial.a
-rw-r--r--  1 root root    398780 Dec  5 08:27 libhdf5_serial_fortran.a
lrwxrwxrwx  1 root root        33 Dec  5 08:27 libhdf5_serial_fortran.so -> libhdf5_serial_fortran.so.100.0.1
lrwxrwxrwx  1 root root        33 Dec  5 08:27 libhdf5_serial_fortran.so.100 -> libhdf5_serial_fortran.so.100.0.1
-rw-r--r--  1 root root    254920 Dec  5 08:27 libhdf5_serial_fortran.so.100.0.1
-rw-r--r--  1 root root    245528 Dec  5 08:27 libhdf5_serial_hl.a
-rw-r--r--  1 root root    186570 Dec  5 08:27 libhdf5_serialhl_fortran.a
lrwxrwxrwx  1 root root        35 Dec  5 08:27 libhdf5_serialhl_fortran.so -> libhdf5_serialhl_fortran.so.100.0.0
lrwxrwxrwx  1 root root        35 Dec  5 08:27 libhdf5_serialhl_fortran.so.100 -> libhdf5_serialhl_fortran.so.100.0.0
-rw-r--r--  1 root root    121464 Dec  5 08:27 libhdf5_serialhl_fortran.so.100.0.0
lrwxrwxrwx  1 root root        28 Dec  5 08:27 libhdf5_serial_hl.so -> libhdf5_serial_hl.so.100.0.0
lrwxrwxrwx  1 root root        28 Dec  5 08:27 libhdf5_serial_hl.so.100 -> libhdf5_serial_hl.so.100.0.0
-rw-r--r--  1 root root    142744 Dec  5 08:27 libhdf5_serial_hl.so.100.0.0
-rw-r--r--  1 root root      4084 Dec  5 08:27 libhdf5_serial.settings
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_serial.so -> libhdf5_serial.so.100.0.1
lrwxrwxrwx  1 root root        25 Dec  5 08:27 libhdf5_serial.so.100 -> libhdf5_serial.so.100.0.1
-rw-r--r--  1 root root   3491952 Dec  5 08:27 libhdf5_serial.so.100.0.1
lrwxrwxrwx  1 root root        24 May 21 16:16 libhdf5.so -> libhdf5_serial.so.10.1.0

非常感谢任何帮助,因为我最近几天正在努力安装 Caffe。另外,我考虑安装Caffe2,但我无法安装那个,嗯。

4

3 回答 3

1
  1. 作为通用构建提示,请确保在“make pycaffe”之前运行“make all”。

  2. 官网在此日期(2017 年 5 月 23 日)确认仅在 Ubuntu 16.04 或 14.10 上安装。

  3. 确保您拥有 CUDNN 版本 5.1(不是最新的 6),因为它是唯一推荐的版本(2017 年 5 月 23 日)。

于 2017-05-24T06:12:27.413 回答
0

使用休闲命令 sudo -H pip3 install --upgrade pipor sudo -H pip2 install --upgrade pip and sudo -H apt-get install python-tkor sudo -H apt-get install python3-tk and sudo -H pip3 install easysetuporsudo -H pip2 install easysetup

然后重新开始。

于 2017-05-24T06:26:35.507 回答
0

以下两行并不总是必要的,甚至可能会导致问题:

sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

此外,确保所有hdf5依赖项都已安装。

于 2017-05-22T14:42:01.067 回答