1.HDF5在window上的下载
1)官方下载路径:https://www.hdfgroup.org/solutions/hdf5/
- 如果visual studio中的工程是X86,需要下载支持win32的版本;如果工程是X64,则选择支持64位的版本。这一点很重要,如果工程是X86,下载的却是64位的安装包,程序是没法编译通过的。
- 我目前看到支持win32的版本都比较老,最近是1.8.20版(2017年)。支持win32和X64的是两个不同的安装包,目前我没有看到同一个安装包同时支持X86和X64。
2)如下图中,选择“Ready to use Binaries”下载安装包。win32和64位的安装包安装后分别在Program Files和Program Files (x86)文件夹下。
3)安装完成后的文件夹如下所示:
2.Visual studio的工程配置
根据安装包中的配置文档“USING_HDF5_VS.txt”进行配置,以Visual studio 2015为例:
1)打开工程属性页,在采用动态链接时,[C/C++]->[preprocessor]选项卡中,在预处理器定义项目中定义H5_BUILT_AS_DYNAMIC_LIB
2)打开工程属性页,在[VC++ Directories]选项卡中,将HDF5安装目录下的include和lib文件夹地址填入对应项目中。
3)在[Linker]->[General]选项卡中,将HDF5安装目录下的lib文件夹地址填入附加库目录项目中
4)在[Linker]选项卡->[input]选项卡中,将链接的库文件(szip.lib zlib.lib hdf5.lib hdf5_cpp.lib)添加到附加依赖项中
3.应用中可能遇到的问题及解决方法
1)问题1:用HDF5创建的文件名或者文件内容是乱码
因为HDF5安装包是release built,如果我们的工程是在debug模式下,由于std::string 在debug和release下的存储方式不同,所以会产生乱码。可以用char*或者用std::string::c_str() 替换std::string。参考这个论文问答。
2)问题2:找不到所调用的HDF5函数
检查安装包版本和VS工程版本是否对应。