前言
matlab的matio库需要使用到hdf5,编译hdf5的msvc2015x64版本。
HDF5介绍
HDF(Hierarchical Data Format)是一种设计用于存储和组织大量数据的文件格式,最开始由美国国家超算中心研发,后来由一个非盈利组织HDF Group支持.HDF支持多种商业及非商业的软件平台,包括MATLAB、Java、Python、R和Julia等等,现在也提供了Spark.其版本包括了HDF4和现在大量用的HDF5。
HDF5是用于存储和管理数据的数据模型、库和文件格式。它支持无限多样的数据类型,专为灵活高效的I/O以及高容量和复杂数据而设计。HDF5具有可移植性和可扩展性,允许应用程序在使用HDF5的过程中不断发展。HDF5技术套件包括用于管理、操作、查看和分析HDF5格式数据的工具和应用程序。
一个HDF5文件可以被看作是一个组(类Unix的文件系统层次结构)包含了各类不同的数据集,数据集可以是图像、表格,甚至是PDF文件和Excel.HDF5中的两大核心就是组结构和数据集。
下载
官网:https://www.hdfgroup.org
QQ群:1047134658(点击“文件”搜索“hdf5”,群内与博文同步更新)
编译HD5(msvc2015x64版本)
步骤一:下载解压
步骤二:CMake配置,解决“CMAKE_C_COMPILE”
报错找不到C编译器,如下图:
打开Visual Studio Installer,修改软件,所有的安装平台sdk只留一个windows版本的sdk,如下图:
修改等待安装完成。
弄完后重启,继续:
查看具体原因,打开CMakeOutput.txt文件:
是因为连接不到kernel32.lib,百度找到是:
Since kernel32.lib is a part of Windows SDK, try installing or reinstalling it.
那么我们尝试卸载所有的windows sdk,然后安装一个,再重启再试,又缺少ucrtd.lib,如下图:
然后把VC++的环境也给加上,就好了(之前也加了,但是没用,装了VS2015然后VS2017估计是冲掉覆盖了,所以本质上是卸载了sdk,卸载了所有的vc++,然后重新安装sdk和vc++依赖库,才好的)
步骤三:CMake配置,解决“perl”
然后缺少perl,需要安装perl,如下图:
继续编译。
步骤四:CMake配置,卡N久无法解决
查看错误输出:
目前放弃使用CMake软件的方法编译源码
编译HD5(官方提供命令批处理的)
步骤一:下载带有cmake版本的
步骤二:选择VS2015-64.BAT运行并CMake配置
(这个配置之前使用之前编译的版本试过,配置错误,找不到东西,所以直接下这个了)
步骤三:使用VS打开工程进行安装
安装文件布局
完成编译。