【发布时间】:2017-03-09 23:11:08
【问题描述】:
我有一个 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
【问题讨论】:
-
您必须首先告诉我们您在做什么。否则我们真的不知道你做错了什么......
-
从不在疑问句中使用“it doesn't work”。发生什么了?错误?错误的结果?它会打印什么东西吗?具体一点。
-
我添加了编译日志。
-
B请注意,链接库是不够的,您必须设置包含路径,以便编译器知道在哪里搜索
.mod文件。您可以使用-I the_path之类的东西(至少在 gfortran 中)。 -
我还将
hdf5的安装位置与-I /path/to/hdf5/lib一起包含在编译器标志中。如您所见,问题始于use HDF5本身,代码不知道hdf5的位置。