我有11个文件都需要HDF5库。通常我只是使用另一种方式来编译和构建该程序。现在我改变主意,我想自己使用Codeblocks。
问题在于:
此处出现错误消息:
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
的东西。所以这意味着codeblocks中的链接器选项不起作用。为什么呢?
答案 0 :(得分:1)
在编译时需要依赖hdf5.mod
,而不是链接时间,这就是为什么你没有成功通过链接器选项修复它。模块文件在某种程度上在概念上类似于C包含文件(虽然在实现上非常不同而且不可移植)。要允许编译器找到它们,您可以通过-I
选项传递搜索路径。
在代码块中,您应该在正在搞乱的链接器选项旁边找到一个search directories
选项卡(在项目构建选项中)。在搜索目录选项卡中,您将要选择编译器选项卡,然后添加hdf5模块文件的路径。
答案 1 :(得分:1)
还要确保已安装 serial hdf5库包。这可能在将来帮助其他人。
在Ubuntu上:
sudo apt-get install libhdf5-serial-dev
我收到了与您相同的错误,因为我只有MPI版本(libhdf5-openmpi-dev
或libhdf5-mpich-dev
)
在MacOS上:
你可能需要Fortran的部分/全部标志:
brew install homebrew/science/hdf5 --with-fortran --with-mpi --with-fortran2003