首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上使用HDF5库和CMake (错误:“找不到HDF5")

在Windows上使用HDF5库和CMake (错误:“找不到HDF5")
EN

Stack Overflow用户
提问于 2017-04-25 10:50:12
回答 2查看 2.2K关注 0票数 2

我想在我的HDF5程序中使用C++库。我在Windows7上使用VS 2010 x64编译器和CMake 3.8.0rc2,我安装的HDF5版本是1.8.10 (通过运行正式的"Installer")。

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

代码语言:javascript
复制
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在配置时显示了以下错误消息:

代码语言:javascript
复制
Could NOT find HDF5 (missing: HDF5_LIBRARIES)

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

要让CMake识别HDF5安装,我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-25 14:39:44

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

不幸的是,VS 2010 x64生成器在CMake-hdf5-1.8.18存档中缺失。只有VS 2012、2013和2015年的.bat文件。但是,也可以添加其他生成器:

  1. 从CMake下载网站下载HDF5存档,即从网站下载。确保采用要安装的版本。
  2. 打开文件HDF5config.cmake
  3. 搜索CTEST_CMAKE_GENERATOR
  4. 为所需生成器添加另一个elseif,即Visual 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++项目。

代码语言:javascript
复制
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})
票数 0
EN

Stack Overflow用户

发布于 2018-02-08 21:35:43

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

吉恩

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43608621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档