在Windows上使用CMake的HDF5库(错误:“找不到HDF5”)

问题描述:

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

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这两个点

在我CMakeLists文件,添加以下行到我的HDF5安装文件夹C:\Develop\HDF5\1.8.10

我错过了让CMake识别HDF5安装?

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

不幸的是,CMake-hdf5-1.8.18归档中缺少VS 2010 x64生成器。只有蝙蝠对VS 2012年,2013年和2015年是可能的,虽然添加其他发电机文件:

从HDF5下载网站
  1. 下载CMake的存档,即从this网站。确保采取您想要安装的版本。
  2. 打开文件HDF5config.cmake
  3. 搜索CTEST_CMAKE_GENERATOR
  4. 您所需的发电机添加另一个elseif,即对于Visual Studio 2010的64: 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}) 

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