WSL2 Ubuntu20.04编译DAMASK光谱求解器缺失hdf5.mod报错求助
问题核心
编译时找不到Fortran语言对应的HDF5模块文件hdf5.mod,要么是系统未安装带Fortran支持的HDF5开发库,要么是编译时未正确引入HDF5头文件路径。
解决方案
- 第一步:安装依赖包
执行以下命令安装Ubuntu20.04下带Fortran支持的HDF5开发组件:sudo apt update && sudo apt install -y libhdf5-dev libhdf5-fortran-102 gfortran - 第二步:查找
hdf5.mod文件路径
执行命令确认模块文件的实际存放路径:
正常输出类似sudo find /usr -name "hdf5.mod"/usr/include/hdf5/serial/hdf5.mod,记下来路径中hdf5.mod之前的目录部分,比如上面的路径对应的目录是/usr/include/hdf5/serial。 - 第三步:清理旧的编译缓存
删除之前编译生成的缓存文件,避免旧配置影响:rm -rf ~/damask-2.0.3/build/spectral - 第四步:导入HDF5路径环境变量
把第二步得到的目录替换到下面命令对应位置后执行:
比如你查到的目录是export FFLAGS="-I<你查到的hdf5.mod所在目录> $FFLAGS" export LDFLAGS="-L/usr/lib/x86_64-linux-gnu/hdf5/serial -lhdf5_fortran $LDFLAGS"/usr/include/hdf5/serial,第一条命令就是:export FFLAGS="-I/usr/include/hdf5/serial $FFLAGS" - 第五步:重新执行编译
make spectral
异常兜底
如果执行上述步骤后仍报错,可检查你安装的PETSc是否开启了HDF5支持,重新编译PETSc时在配置参数中加上--download-hdf5=1即可自动编译带Fortran支持的HDF5并集成到PETSc中,之后再重新编译DAMASK。
内容的提问来源于stack exchange,提问作者fenfam
相关产品推荐
相关产品推荐

