(详细)在windows平台使用CMAKE安装HDF5

在windows平台安装HDF5

本说明中命令均在windows Power Shell下运行,某些命令不能在cmd下执行,但可手动完成


依赖

  1. Visual Studio 2015以上,官方测试2015版本,本次测试2015,2019版本均通过
  2. Microsoft MPI,官网下载最新版本即可
  3. NSIS或者WIX,官网最新版本即可
  4. cmake,官网下载最新版本安装即可,同时安装cmake-gui
  5. git for windows
  6. perl for windows <http://strawberryperl.com/>

安装过程

  1. 下载github源码
git clone https://bitbucket.hdfgroup.org/scm/hdffv/hdf5.git
  1. 拷贝配置文件到根目录,文件位置与hdf5源码目录平级
 copy hdf5\config\cmake\scripts\HDF5options.cmake .
 copy hdf5\config\cmake\scripts\CTestScript.cmake .
 copy hdf5\config\cmake\scripts\HDF5config.cmake .
  1. 修改配置文件
  • 禁用szip和zlib
    记事本或者notepad打开HDF5options.cmake文件,找到下面几行,取消注释
### disable using ext zlib
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")
### disable using ext szip
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
  • 编译并行版本
#if (DEFINED MPI)
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_PARALLEL:BOOL=ON")
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=OFF")
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_THREADSAFE:BOOL=OFF")
#endif()
  1. 创建批处理文件gen.bat,将下面内容复制到文件中,注意条目之间无空格
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201964,CTEST_SOURCE_NAME=hdf5,STATIC_ONLY=NO -C Release -VV -O hdf5.log

其中BUILD_GENERATOR取决于Visual Studio的版本,不同版本选择不同的生成器,版本对应关系参照下图

#     BUILD_GENERATOR - The cmake build generator:
#            Unix      * Unix Makefiles
#            VS2019    * Visual Studio 16 2019
#            VS201964  * Visual Studio 16 2019
#            VS2017    * Visual Studio 15 2017
#            VS201764  * Visual Studio 15 2017 Win64
#            VS2015    * Visual Studio 14 2015
#            VS201564  * Visual Studio 14 2015 Win64
#            VS2013    * Visual Studio 12 2013
#            VS201364  * Visual Studio 12 2013 Win64

另外CTEST_SOURCE_NAME条目指定hdf5目录名称,需与文件夹名保持一致;

  1. 运行批处理文件gen.bat,日志保存在根目录下的hdf5.log,出错可查看该文件;
  2. 安装过程可能会有很长的一段时间用于测试,最稳妥的方法是耐心等待;或者根据本人经验,观察任务管理器该进程的活动情况,如果长时间没有占用cpu或者硬盘,可能脚本卡住了,尝试按下ctrl+c,不过此举有风险,可能导致脚本中断,只能重新开始;
  3. 批处理文件执行结束后应该会在根目录或build目录下生成HDF5-X.X.X-win64.exe或HDF5-X.X.X-win64.msi文件,双击按提示安装即可,如果没有该文件,进入build目录,然后执行下面命令
cpack -C Release

安装过程中可能提示无法添加环境变量,可忽略并完成安装


可能出现问题

  1. 使用VS2015安装时出现找不到windows 8.1 sdk
    可以使用visual studio 打开build\CMakeFiles\3.17.0-rc1目录下的VCTargetPath.vcxproj文件,按照提示安装8.1 sdk更新
  2. 若出现其他错误,可参考作者编译过程中生成的hdf5.log文件,比对找出错误
    VS2019: 链接:https://pan.baidu.com/s/1J4DgbFnzVFZnn9ggD69h0g 提取码:o8dp
    VS2015: 链接:https://pan.baidu.com/s/1SLmEomUP--79PpmrcZYVIQ
    提取码:uzn5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容