【发布时间】:2017-03-14 18:11:53
【问题描述】:
我有 11 个文件都需要 HDF5 库。通常我只是使用另一种方式来编译和构建该程序。现在我改变主意了,我想自己使用 Codeblocks 来做。
问题来了:
- 我在代码块中打开项目中的“构建选项”。然后我直接跳转到链接器设置。并添加所需的 .a 库文件。
- 然后我只需单击“重建工作区”。
这里出现错误消息:
gfortran -Jobj/Debug/ -Wall -g -O3 -c "/home/shawn/Documents/datafile_oldubuntu/Academics/Data_analysis_code/Helmholtz decomposition+rotcombudget/code_budget/budget_helmholtz_comrot_ver2.0_symmertic/global.f90" -o obj/Debug/global.o
/home/shawn/Documents/datafile_oldubuntu/Academics/Data_analysis_code/Helmholtz decomposition+rotcombudget/code_budget/budget_helmholtz_comrot_ver2.0_symmertic/global.f90:3.4:
USE HDF5
1
Fatal Error: Can't open module file 'hdf5.mod' for reading at (1): No such file or directory
Process terminated with status 1 (0 minute(s), 1 second(s))
1 error(s), 0 warning(s) (0 minute(s), 1 second(s))
如您所见,在我的编译文件夹中本地没有名为hdf5.mod 的东西。所以这意味着代码块中的链接器选项不起作用。为什么?
【问题讨论】:
-
您需要告诉编译器在哪里可以找到 HDF5 模块。通常,它们位于包含文件夹中。找到模块文件并将
-I/path/to/modules添加到编译器选项中。 -
@AlexanderVogt 感谢您的回复!我添加了模块文件和库文件,但结果仍然无效。 gfortran -Jobj/Debug/ -Wall -O3 -I/usr/local/hdf5/include -c /home/shawn/Documents/datafile_oldubuntu/Academics/Data_analysis_code/FFT/FFT_spENS/ens.f90 -o obj/Debug/ens。 o
-
然后我链接:gfortran -o bin/Debug/FFT_spENS obj/Debug/ens.o obj/Debug/fft.o obj/Debug/global.o obj/Debug/main_ens.o /usr /local/hdf5/lib/libhdf5_fortran.a /usr/local/hdf5/lib/libhdf5.a /usr/local/hdf5/lib/libhdf5.a(H5PL.o): 在函数
H5PL_term_interface': H5PL.c:(.text+0xa7): undefined reference todlclose' 所以它仍然某处错了
标签: fortran codeblocks