фатальная ошибка: H5Cpp.h: нет такого файла или каталога - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь скомпилировать приложение с помощью HDF5 lib.Я установил lib через менеджер пакетов ubuntus 18.04.Мои CMakeLists выглядят как

   cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
   project(hdf)

   find_package(HDF5 REQUIRED COMPONENTS C CXX)

   add_executable(hdf hdf.cpp)
   target_link_libraries(hdf ${HDF5_HL_LIBRARIES} ${HDF5_CXX_LIBRARIES} ${HDF5_LIBRARIES})
   set_property(TARGET hdf PROPERTY CXX_STANDARD 17)

   message(STATUS "INCLUDE LOCATION" ${HDF5_INCLUDE_DIRS})
   message(STATUS "version" ${HDF5_VERSION})
   message(STATUS "DEFINITIONS" ${HDF5_DEFINITIONS})
   message(STATUS "LIBRARIES" ${HDF5_LIBRARIES})
   message(STATUS "HL_LIBRARIES" ${HDF5_HL_LIBRARIES})

с запущенным cmake, вывод выдаёт

 HDF5: Using hdf5 compiler wrapper to determine C configuration
-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
-- Found HDF5: /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.10.0.1") found components:  C CXX 
-- INCLUDE LOCATION/usr/include/hdf5/serial
-- version1.10.0.1
-- DEFINITIONS-D_FORTIFY_SOURCE=2
-- LIBRARIES/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so/usr/lib/x86_64-linux-gnu/libpthread.so/usr/lib/x86_64-linux-gnu/libsz.so/usr/lib/x86_64-linux-gnu/libz.so/usr/lib/x86_64-linux-gnu/libdl.so/usr/lib/x86_64-linux-gnu/libm.so
-- HL_LIBRARIES

, поэтому, очевидно, все файлы найдены.

Однако, если я не пытаюсьскомпилируйте простой пример и включите зависимости с

#include "H5Cpp.h"

Я получу

fatal error: H5Cpp.h: No such file or directory
 #include "H5Cpp.h"

Почему это так?Помощь приветствуется

1 Ответ

0 голосов
/ 07 февраля 2019

Вы должны явно добавить местоположение заголовка в ваш файл CMakeLists.txt:

include_directories(${HDF5_INCLUDE_DIRS})

Для получения дополнительной информации см. Документацию include_directories .

...