打开HDF5编译模块报错

Error in opening the compiled module of HDF5

我有一个 Fortran 程序,其中一个文件以行 use HDF5 开头。该程序之前已在特定集群上编译和 运行。现在,我正在尝试在不同的集群中编译程序,该集群已经 hdf5 安装在特定位置。

我假设问题是编译器无法理解 hdf5 安装目录的位置。我也尝试通过使用 LD_LIBRARY_PATH 导出来指定 hdf5 位置。仍然不起作用。谁能帮我弄清楚我做错了什么?

编译器标志还包括 -lhdf5_fortran-lhdf5

更新:编译错误列表很长。但是,它的开头看起来像这样:

lbe_io_hdf5.F90(7): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [HDF5]
  use HDF5
------^
lbe_io_hdf5.F90(82): error #6683: A kind type parameter must be a compile-time constant.   [HID_T]
  integer(hid_t) :: file_id      ! File identifier

看来我一直在尝试将 hdf5 header 定位在错误的位置。使用 locate hdf5.h 给了我 header 文件的位置,使用 -I 包含目录解决了这个问题。

HDF5 带有 Fortran 的编译器包装器 h5fc。对于单个程序文件:

h5fc -o my_program my_program.f90

对于单独的编译和链接:

h5fc -c file1.f90
h5fc -c my_program.f90
h5fc -o my_program file1.o my_program.o

如果想直接调用编译器,检查

给出的flags
h5fc -show

如果没有 h5fc 命令,则表示您没有安装支持 Fortran 的 HDF5。