HDF5源码安装使用步骤(基于ubuntu22.04版本)
概要:Ubuntu22通过源代码安装HDF5
HDF5是一种针对大量数据进行组织和存储的文件格式。经历了20多年的发展,HDF格式的最新版本是HDF5,它包含了数据模型,库,和文件格式标准。以其便捷有效,移植性强,灵活可扩展的特点受到了广泛的关注和应用。
1.首先是在官网下载源代码进行编译安装
https://www.hdfgroup.org/downloads/hdf5/source-code/
2.解压文件,进入该文件夹
- 在ubuntu系统的home中的用户文件夹新建文件,将其拷贝带新建的文件夹中,使用解压指令进行 (
tar -zxvf hdf5-1.14.4-2.tar.gz
),解压完成进入该文件夹(cd hdf5-1.14.4
) - 执行一系列的安装操作,ubuntu22.04没有自带gcc 和 g++编译器需自己安装,可以使用指令
(sudo apt update,sudo apt install build-essential
)
编译器安装出现其他问题可自行去网上查询解决方案。 - 源代码编译流程,依次执行下面的命令,执行命令之前确保自己进入hdf5-1.14.4。具体的下载的代码参考官网,若官网代码更新升级,代码版本可能会变化!执行以下指令进行安装。
sudo ./configure --prefix=/usr/local/hdf5 --enable-cxx
sudo make
sudo make check
sudo make install
sudo make check-install
如果安装步骤1出现“line 3: $'\r': command not found”
等报错问题,使用下面的额命令把当前文件里的所有包含windows风格的行结束符的文件转换成unix风格的行结束, 使用指令: find . -type f -exec dos2unix {} \
,进行解决。
- 安装完成之后,在ubuntu系统下进入/usr/local/ 在这个目录下发现hdf5文件夹,并进入这个文件,发现/bin /include /lib /share目录的话,安装成功
验证测试,并用C++代码,创建一个HDF5数据!
提示:这里可以编写测试代码,这里以C++代码为例,首先是确保自己的ubuntu系统安装vim编辑器(sudo apt install vim),若出现例如软件依赖错误,可自己网上查找解决方案!也可以使用vi编辑器。也可以安装其他的代码编辑平台,如VScode等,这里我以vim编辑器进行演示。(提示:需要使用者有一定的vim操作基础
C++代码案例:
#include <H5Cpp.h>
#include <iostream>
using namespace H5;
using namespace std;
int main() {
try {
// 创建一个新的HDF5文件
H5File file("test.h5", H5F_ACC_TRUNC);
// 创建一个简单的数据空间
hsize_t dims[2] = {4, 6};
DataSpace dataspace(2, dims);
// 创建一个整数类型的数据集
IntType datatype(PredType::NATIVE_INT);
datatype.setOrder(H5T_ORDER_LE);
// 创建数据集
DataSet dataset = file.createDataSet("dataset", datatype, dataspace);
// 写入数据
int data[4][6];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 6; j++)
data[i][j] = i * 6 + j;
dataset.write(data, PredType::NATIVE_INT);
cout << "HDF5 file created and dataset written successfully!" << endl;
} catch (FileIException &e) {
cerr << "File Exception: " << e.getDetailMsg() << endl;
} catch (DataSetIException &e) {
cerr << "Dataset Exception: " << e.getDetailMsg() << endl;
} catch (DataSpaceIException &e) {
cerr << "Dataspace Exception: " << e.getDetailMsg() << endl;
} catch (DataTypeIException &e) {
cerr << "Datatype Exception: " << e.getDetailMsg() << endl;
}
return 0;
}
执行指令:g++ test.cpp -o test -I/usr/local/hdf5/include -L/usr/local/hdf5/lib -lhdf5_cpp -lhdf5
指令详细解释:-I 选项用于指定额外的头文件搜索路径。这里告诉编译器在 /usr/local/hdf5/include 目录中查找头文件。
-L 选项用于指定额外的库文件搜索路径。这里告诉编译器在 /usr/local/hdf5/lib 目录中查找库文件。
-l 选项用于指定要链接的库。这部分告诉编译器链接名为 hdf5_cpp 的库。
执行完这个指令后会在当前文件夹下会输出一个,test文件。如何执行这个文件,
方法1:确保你的 LD_LIBRARY_PATH 环境变量中包含HDF5库的路径。你可以在终端中临时设置这个变量:
export LD_LIBRARY_PATH=/usr/local/hdf5/lib:$LD_LIBRARY_PATH
如果你希望永久设置这个变量,可以将它添加到你的 .bashrc 或 .zshrc 文件中:
echo 'export LD_LIBRARY_PATH=/usr/local/hdf5/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
方法2:将HDF5库的路径添加到系统的库路径中。创建一个新的配置文件,例如 /etc/ld.so.conf.d/hdf5.conf
,并将HDF5库的路径写入其中:
echo "/usr/local/hdf5/lib" | sudo tee /etc/ld.so.conf.d/hdf5.conf
然后运行 ldconfig 以更新库缓存:sudo ldconfig
方法3:(推荐使用这个)在运行程序时指定库路径:LD_LIBRARY_PATH=/usr/local/hdf5/lib ./test
出现如下输出,代表验证成功,并创建了一个test.h5的数据模型
创建成功后的HDF5数据如何查看
` 提示:
对于这个test.h5文件如何查看,在ubuntu系统中,使用指令:sudo apt install hdf5-tools
安装工具包,执行:h5dump test.h5
显示数据结构。
`
额外补充
如果你熟悉Python,可以使用h5py库来读取HDF5文件并查看数据。以下是一个简单的Python示例:需要自己安装h5py库
import h5py
# 打开HDF5文件
with h5py.File('test.h5', 'r') as file:
# 列出所有的组
keys = list(file.keys())
print("Keys: %s" % keys)
# 遍历所有键并打印它们的形状和部分内容
for key in keys:
dataset = file[key]
print(f"Shape of {key}: {dataset.shape}")
print(f"Data of {key}: {dataset[:10]}") # 打印前10个数据
希望这个博客能够帮助你,喜欢的请点个赞吧!!!