代码之家  ›  专栏  ›  技术社区  ›  CD86

致命错误:H5Cpp.h:没有这样的文件或目录

  •  0
  • CD86  · 技术社区  · 6 年前

       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 回复  |  直到 6 年前
        1
  •  1
  •   piripiri    6 年前

    您必须明确地将标题位置添加到CMakeLists.txt:

    include_directories(${HDF5_INCLUDE_DIRS})
    

    include_directories .