【问题标题】:Using HDF5 Libraries with CMake on Windows (Error: "Could NOT find HDF5")在 Windows 上使用带有 CMake 的 HDF5 库(错误:“找不到 HDF5”)
【发布时间】:2017-09-22 08:19:35
【问题描述】:

我想在我的 C++ 程序中使用 HDF5 库。我在 Windows 7 上使用 VS 2010 x64 编译器和 CMake 3.8.0rc2。我安装的 HDF5 版本是 1.8.10(通过运行官方“安装程序”安装)。

在我的 CMakeLists 文件中,我添加了以下几行:

FIND_PACKAGE ( HDF5 REQUIRED )
INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRS})
SET (HDF5_LIBS ${HDF5_LIBS} ${HDF5_LIBRARIES})
...
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${HDF5_LIBS})

CMake 在配置时显示以下错误消息:

Could NOT find HDF5 (missing: HDF5_LIBRARIES)

我还添加了环境变量HDF5_DIRHDF5_ROOT,它们都指向我的HDF5 安装文件夹C:\Develop\HDF5\1.8.10

让 CMake 识别 HDF5 安装我缺少什么?

【问题讨论】:

    标签: cmake hdf5 cmake-gui


    【解决方案1】:

    现在可以通过 vcpkg (https://github.com/Microsoft/vcpkg) 在 Windows 上安装 hdf5

    【讨论】:

    • 似乎没有用 find_package 检测到
    【解决方案2】:

    我使用的是过时的 HDF5 版本;当前版本为 HDF5-1.8.18。

    很遗憾,CMake-hdf5-1.8.18 存档中缺少 VS 2010 x64 生成器。 VS 2012、2013 和 2015 只有 .bat 文件。不过可以添加其他生成器:

    1. 从 HDF5 下载网站下载 CMake 存档,即从this 网站。确保采用您要安装的版本。
    2. 打开文件HDF5config.cmake
    3. 搜索CTEST_CMAKE_GENERATOR
    4. 为您想要的生成器添加另一个 elseif,即对于 Visual Studio 2010 x64: elseif(${BUILD_GENERATOR} STREQUAL "VS201064") set(CTEST_CMAKE_GENERATOR "Visual Studio 10 2010 Win64")
    5. 创建另一个 .bat 文件,即build-VS2010-64.bat
    6. 将 BUILD_GENERATOR 值替换为您在HDF5config.cmake file 中选择的值,即ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201064 -C Release -V -O hdf5.log
    7. 运行 .bat 文件
    8. 内置的 HDF5 安装将在文件夹 .\build\_CPack_Packages\win64 中可用

    之后,我更改了原始问题中显示的 CMakeLists 行,如编译时创建的USING_HDF5_CMake.txt 所示。请注意,我在组件列表中将C 更改为CXX,因为我有C++ 项目。

    set (LIB_TYPE STATIC) # or SHARED
    string(TOLOWER ${LIB_TYPE} SEARCH_TYPE)
    
    find_package (HDF5 NAMES hdf5 COMPONENTS CXX ${SEARCH_TYPE})
    # find_package (HDF5) # Find non-cmake built HDF5
    INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIR})
    set (LINK_LIBS ${LINK_LIBS} ${HDF5_CXX_${LIB_TYPE}_LIBRARY})
    

    【讨论】:

      猜你喜欢
      • 2016-01-24
      • 2014-03-11
      • 2020-01-10
      • 2019-07-01
      • 1970-01-01
      • 2015-03-17
      • 2019-01-21
      • 2014-07-21
      • 2016-06-14
      相关资源
      最近更新 更多