Caffe не видел hdf5.h при компиляции

У меня возникают проблемы при установке Caffe Deep Learning Framework на Python:

Когда я запускаю команду make в каталоге caffe, она говорит

hdf5.h: нет такой директории

Действия, которые я выполнил:

  • Обновление и обновление моего сервера Ubuntu

  • Установить Python 2.7

  • Имея все базы зависимостей на http://caffe.berkeleyvision.org/install_apt.html

  • Запустить cp cp Makefile.config.example Makefile.config

  • Uncomment cpu_only = 1 в Makefile.config

Буду признателен, если кто-то может мне помочь.

Сообщение об ошибке:

CXX src/caffe/util/hdf5.cpp
in file include from src/caffe/util/hdf5.cpp:1:0:
./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory
compilation terminated 

Makefile:572 recipe for target '.build_release/src/caffe/util/hdf5.o'       
failed Make:*** [.build_release/src/caffe/util/hdf5.o] Error 1

Ответ 1

Какова версия вашей установки Ubuntu? Попробуй это. В Makefile.config попробуйте добавить /usr/include/hdf5/serial/ в INCLUDE_DIRS:

--- INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
+++ INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

и переименуйте hdf5_hl и hdf5 в hdf5_serial_hl и hdf5_serial в Makefile:

--- LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
+++ LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

Подробнее об исправлении ошибок здесь.

Ответ 2

Это решение работало для меня на Ubuntu16.04LTS

sudo apt-get install libhdf5-10
sudo apt-get install libhdf5-serial-dev
sudo apt-get install libhdf5-dev
sudo apt-get install libhdf5-cpp-11
find /usr -iname "*hdf5.h*"
/usr/include/hdf5/serial/hdf5.h
export CPATH="/usr/include/hdf5/serial/"

Ответ 3

Другой случай, с которым я столкнулся:

Я использовал Ubuntu 14.04 и установил hdf5-1.10.0.

Я обнаружил, что hdf5.h находится в /usr/local/hdf5/include. Таким образом, я изменил файл Makefile.config, добавив это местоположение в INCLUDE_DIRS.

# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include \
                    /usr/local/hdf5/include

Я ничего не переименовал в Makefile. Он работал нормально.