vs2010编写HDF5格式文件读取出错 “无法解析的外部符号 _H5Fclose,该符号在函数 _main 中被引用”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2010编写HDF5格式文件读取出错 “无法解析的外部符号 _H5Fclose,该符号在函数 _main 中被引用”相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <string.h>

#include "HDF5_H/hdf5.h"
#define FILE "data.h5"

int main(void)

hid_t file_id;
herr_t status;

/* Open an existing file. */
file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);

/* Close the file. */
status = H5Fclose(file_id);
return 0;


error LNK2019: 无法解析的外部符号 _H5Fclose,该符号在函数 _main 中被引用
1>read.obj : error LNK2019: 无法解析的外部符号 _H5Fopen,该符号在函数 _main 中被引用
1>read.obj : error LNK2019: 无法解析的外部符号 _H5check_version,该符号在函数 _main 中被引用
问什么会有错误?求高手指点,在线等。

你的库文件没加载吧,不光需要导入头文件, 你看看这个头文件是不是还有库文件或者DLL文件需要放置到SYSTEM32目录下

库文件需要在程序中定位,在“项目-->XXX属性-->配置属性-->链接器--->附加库目录”加载你未定位的库文件追问

您好,非常感谢您帮我。
这个hdf5.h是从别人拷给我的
您说的DLL什么放在SYSTEM32,怎么做,能说清楚点么?

追答

除了hdf5.h这个文件 还有其他文件吗,在同一个拷贝的目录里,不知道文件没办法描述啊

参考技术A 请问你现在这个问题解决了吗?如果解决了,可以教下我吗?😂

Pandas 无法读取使用 h5py 创建的 hdf5 文件

【中文标题】Pandas 无法读取使用 h5py 创建的 hdf5 文件【英文标题】:Pandas can't read hdf5 file created with h5py 【发布时间】:2018-12-10 21:38:13 【问题描述】:

当我尝试读取使用 h5py 创建的 HDF5 格式文件时出现 pandas 错误。我想知道我是不是做错了什么?

import h5py
import numpy as np
import pandas as pd
h5_file = h5py.File('test.h5', 'w')
h5_file.create_dataset('zeros', data=np.zeros(shape=(3, 5)), dtype='f')
h5_file.close()
pd_file = pd.read_hdf('test.h5', 'zeros')

给出一个错误: TypeError:如果对象不存在也没有传递值,则无法创建存储器

我尝试将密钥集指定为“/zeros”(就像我在读取文件时使用 h5py 一样)但没有成功。

如果我使用 pandas.HDFStore 读取它,我会得到一个空存储:

store = pd.HDFStore('test.h5')
>>> store
<class 'pandas.io.pytables.HDFStore'>
File path: test.h5
Empty

使用 h5py 读取刚刚创建的文件没有问题:

h5_back = h5py.File('test.h5', 'r')
h5_back['/zeros']
<HDF5 dataset "zeros": shape (3, 5), type "<f4">

使用这些版本:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

pd.__version__
'0.16.2'
h5py.__version__
'2.5.0'

提前非常感谢, 玛莎

【问题讨论】:

另见github.com/pandas-dev/pandas/issues/9539 【参考方案1】:

我在pandas.io 中的pytables 模块上做了一些工作,据我所知,pandas 与 HDF 文件的交互仅限于 pandas 可以理解的特定结构。想看看这些是什么样子的,你可以试试

import pandas as pd
import numpy as np
pd.Series(np.zeros((3,5),dtype=np.float32).to_hdf('test.h5','test')

如果您在 HDFView 中打开“test.h5”,您将看到一个路径 /test,其中包含重新创建 DataFrame 所需的 4 个项目。

所以我认为读取 NumPy 数组的唯一选择是直接读取它们,然后将它们转换为 Pandas 对象。

【讨论】:

我想拼接到 Pandas,但看起来我必须保持 h5py 依赖。非常感谢您的回复! 代码不起作用:缺少括号,Series 是一维的,但数据是二维的。可能你想输入pd.DataFrame(np.zeros((3, 5), dtype=np.float32)).to_hdf("test.h5", "test")

以上是关于vs2010编写HDF5格式文件读取出错 “无法解析的外部符号 _H5Fclose,该符号在函数 _main 中被引用”的主要内容,如果未能解决你的问题,请参考以下文章

怎么用C#或VS2010读取CAD的dwg格式文件的图层信息

如何读取 hdf5 文件。并将它们绘制为图像

为啥VS2010下OpenCV读取TIFF文件读取失败?

CMake,configue出错,以下是错误信息。怎么弄? vs2010的。

如何读取 .hdf5 数据文件作为卷积神经网络的输入?

在 R 中读取大型 HDF5 文件