在Linux上构建HDF5过滤器插件使用MATLAB HDF5共享库或GNU出口地图

17日视图(30天)

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2022年3月14日
从R2021b开始,如果你正在与HDF5动态加载的过滤器在Linux上,如果你的过滤器插件包含核心HDF5库回调(需要头hdf5.h),那么你需要重建你的过滤器插件symbol-versioned HDF5 1.10.7 MATLAB R2021b或HDF5 1.10.8 MATLAB R2022a和进一步。
重建你的过滤器插件标准Linux配置/制造/ make install构建命令,使用以下选项之一。如果您正在使用CMake,然后进行类似的修改头文件和库路径。
选项1:
构建插件使用HDF5版本1.10.7 (MATLAB R2021b)或1.10.8 (MATLAB R2022a和进一步)共享库libhdf5.so.x.x。x / matlab / bin / glnxa64。
获得HDF5 1.10。从HDF组x头文件https://www.hdfgroup.org/金宝搏官方网站solutions/hdf5/。使用这个PATH_TO_HDF5_INCLUDEDIR。
b。利用matlab / bin / glnxa64 PATH_TO_HDF5_LIBDIR。
c。当调用配置,指定上述INCLUDEDIR和LIBDIR路径。额外的过滤算法路径保持不变:
. / configure——with-hdf5 = PATH_TO_HDF5_INCLUDEDIR PATH_TO_HDF5_LIBDIR
d。像往常一样运行make和make install。
选项2:
构建HDF5 1.10.7 (MATLAB R2021b)或1.10.8 (MATLAB R2022a和进一步)从源使用GNU导出添加symbol-versioning映射到生成的二进制。
下载HDF5 1.10。x导出文本文件hdf5_1_10_7_linux_exported_symbol地图。地图或hdf5_1_10_8_linux_exported_symbol。附加映射到这个答案。
b。在构建HDF5 1.10。x从源,设置LDFLAGS地图:
LDFLAGS+ = - wl——version-script = hdf5_1_10_7_linux_exported_symbol.map
LDFLAGS+ = - wl——version-script = hdf5_1_10_8_linux_exported_symbol.map
c。在构建过滤器插件时,指定LIBRDIR路径作为合成1.10。x共享库路径步骤b。
与选择,确保MATLAB HDF5版本字符串是HDF5嵌入任何回调,你可以在你的插件检查动态符号表共享库使用readelf或objdump。例如,如果插件调用H5Pcreate,那么条目应该显示MWHDF5象征符号装饰。看下面的例子:
readelfws < plugin.so >
H5Pcreate@@MWHDF5 0000000000000000 0 FUNC全局缺省和H5Pcreate@MWHDF5
objdump- c - t < plugin.so >
0000000000000000 DF*和* 0000000000000000 MWHDF5 H5Pcreate
2的评论
科学的机器
科学的机器 2023年4月18日
编辑:科学的机器 2023年4月19日
不,与选项1 hdf5已经安装。在这种情况下,你用它来对已经为matlab编译lzf hdf5 . so文件。这可能是不那么危险的路要走,因为它有“瓦”

登录置评。

更多的答案(0)

标签

没有标签了。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的