如何在visual studio中调用HDF5

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工程版本是否对应。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Visual Studio安装和使用HDF5库的步骤如下: 1. 下载HDF5库:从HDF Group官网(https://www.hdfgroup.org/downloads/hdf5/)下载适合你操作系统的HDF5库。 2. 安装HDF5库:运行下载的HDF5安装程序,并按照提示进行安装。在安装过程,选择你想要安装的HDF5库的版本和组件。 3. 在Visual Studio创建一个新项目:在“文件”菜单选择“新建”->“项目”,选择C++项目类型,并选择“空项目”模板。 4. 将HDF5库添加到项目:在解决方案资源管理器右键单击项目名称,选择“属性”,在“VC++目录”下选择“包含目录”并添加HDF5库的头文件目录(通常是C:\Program Files\HDF_Group\HDF5\1.10.x\include)和在“库目录”添加HDF5库的库目录(通常是C:\Program Files\HDF_Group\HDF5\1.10.x\lib)。 5. 配置项目属性:在“属性页”,选择“配置属性”->“C/C++”->“代码生成器”并将“运行库”选项设置为“多线程调试DLL (/MDd)”或“多线程DLL (/MD)”。 6. 链接HDF5库:在“属性页”,选择“配置属性”->“链接器”->“输入”并在“附加依赖项”添加HDF5库的名称(通常是hdf5.lib)。 7. 在代码使用HDF5库:在代码包含HDF5库的头文件(例如:#include <hdf5.h>)并使用HDF5库提供的函数进行编程。 8. 构建和运行项目:在Visual Studio选择“生成”->“生成解决方案”,然后运行项目。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值