一. 原料
-
HDF5 源码:
下载地址: https://www.hdfgroup.org/downloads/hdf5/source-code/
下载对应系统的版本, 我的是 Windows 10, 选择红框标示的版本
-
CMake:
下载地址: https://cmake.org/download/
选择安装版本会方便很多, 我选择的是 Windows win64-x64 Installer
二. 生成工程文件
- 将下载的源码解压放到你喜欢的地方, 我放在了 D 盘
- 打开 CMake, 在 Where is the sourece code 栏填源码保存的目录, 在 Where to build the binaries 栏填你的目标目录, 我在源码目录中新建了一个 buid 的目录, 如下图
- 然后点左下角的 Configure, 会弹出一些需要设置的选项
- 选择要使用的编译环境, 我选择 Visual Studio 14 2015, 其他默认就好, 然后点 Finish 完成设置, 如果想编译 64 位版本, 则选择 Visual Studio 14 2015 win64, 这样打开工程时默认就是 x64 平台, 否则默认是 win32, 也可以在工程里面切换
![cmake 3.13](https://img-blog.csdnimg.cn/20200101185355109.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l4MTIzOTE5ODA0,size_16,color_FFFFFF,t_70)
CMake 3.16 的平台类型在第二栏中, 和 3.13 有点不一样
- 设置完成后会自动开始生成配置文件
- 生成完成后如下图, 不要以为看到一片红色就以为不行了, 什么都不用管, 直接点 Generate 按钮生成工程
三. 编译
-
生成完成后, Open Project 按钮变成可用状态了, 点它! 就会启动 VS 2015, 并打开生成的工程. 如果你电脑上同时有 VS 2012 和 VS 2015, 那有可能是用 VS2012 打开的, 这里你只需要用 VS 2015 打开刚才生成的工程 (bulid\HDF5.sln) 就可以了
![open project](https://img-blog.csdnimg.cn/20200101185931674.png)
-
等工程打开之后, 生成解决方案, 杀毒软件可能会阻止生成, 比如 360 就会这样, 生成解决方案之前可以暂停保护一阵, 编译完成后如下
![debug finish](https://img-blog.csdnimg.cn/20200101192347961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l4MTIzOTE5ODA0,size_16,color_FFFFFF,t_70)
完成后会在目标目录的 bin 目录下看到生成的文件, 我的是 D:\hdf5-1.10.6\build\bin\Debug
-
Release 版本, 只需切换到 Release 模式下生成就可以了, 同样在 bin 目录下会有 Release 版本的文件
![release finish](https://img-blog.csdnimg.cn/20200101192824824.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l4MTIzOTE5ODA0,size_16,color_FFFFFF,t_70)
三. 下载
如果你没有编译成功, 那就下载我编译好的吧, x86 和 x64 都有
有一点要注意, 源码的 src 文件中少了一个 H5pubconf.h, 这个文件虽然在 build 中可以找到, 但是有问题, 而且没有这个文件的话, 你写的代码在编译时会报找不到文件. 可用的 H5pubconf.h 我一并放到里面的 include 文件夹中了. 还有一点非常重要, \hdf5-1.10.6\src 中的文件是 C 语言版本的 头文件(.h) 和 源文件(.c), 所以如果要使用 C++ 相关的类的话, 就要把 \hdf5-1.10.6\c++\src 中的 头文件(.h)和 源文件(.cpp) 和 C 语言版本的放到一起
这里我就将它们一起放到 include 文件中, 方便使用
下载地址: C\C++ 读写 HDF5 所需头文件和库文件
![libs](https://img-blog.csdnimg.cn/20191230125820453.png)