无法在 (1) 打开模块文件 'hdf5.mod' 进行读取:没有这样的文件或目录
Cannot open module file 'hdf5.mod' for reading at (1): No such file or directory
我正在尝试在 WSL2 (Ubuntu20.04) 上安装 DAMASKhttps://damask.mpie.de/bin/view/Installation/SpectralSolver,但是,当我想制作光谱求解器时。
(base) admin@DESKTOP-FQ1FRPR:~/damask-2.0.3$ make spectral
遇到如下错误,
Building Spectral Solver
Fortran Compiler Flags:
-fopenmp -std=f2008ts -pedantic-errors -O2 -xf95-cpp-input -ffree-line-length-132 -
fimplicit-none -fmodule-private -Wall -Wextra -Wcharacter-truncation -Wunderflow -
Wsuggest-attribute=pure -Wsuggest-attribute=noreturn -Wconversion-extra -Wimplicit-
procedure -Wno-unused-parameter -ffpe-summary=all -fdefault-real-8 -fdefault-double-8
-I/home/fengyx/petsc/include -I/home/fengyx/petsc/arch-linux-c-opt/include
C Compiler Flags:
-O3 -DNDEBUG
Fortran Linker Command:
/home/admin/petsc/arch-linux-c-opt/bin/mpif90 -Wall -ffree-line-length-0 -Wno-unused-
dummy-argument -g -O -fopenmp -O2 -Wl,-undefined,dynamic_lookup <OBJECTS> -o
<TARGET> <LINK_LIBRARIES> -L/home/admin/petsc/arch-linux-c-opt/lib -Wl,-
rpath,/home/admin/petsc/arch-linux-c-opt/lib -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/9
-L/usr/lib/gcc/x86_64-linux-gnu/9 -lpetsc -lHYPRE -lcmumps -ldmumps -lsmumps -lzmumps -
lmumps_common -lpord -lpthread -lscalapack -lspqr -lumfpack -lklu -lcholmod -lbtf -
lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lsuperlu -lsuperlu_dist -lml -
lfftw3_mpi -lfftw3 -lflapack -lfblas -lhdf5_hl -lhdf5 -lchaco -lparmetis -lmetis -
ltriangle -lm -lz -lstdc++ -ldl -lmpifort -lmpi -lgfortran -lgcc_s -lquadmath
-- Configuring done
-- Generating done
-- Build files have been written to: /home/admin/damask-2.0.3/build/spectral
[ 1%] Built target PREC
[ 3%] Built target C_ROUTINES
[ 7%] Building Fortran object src/CMakeFiles/QUIT.dir/quit.f90.o
[ 7%] Built target SYSTEM_ROUTINES
/home/admin/damask-2.0.3/src/quit.f90:29:5:
29 | use hdf5
| 1
Fatal Error: Cannot open module file ‘hdf5.mod’ for reading at (1): No such file or directory
compilation terminated.
make[3]: *** [src/CMakeFiles/QUIT.dir/build.make:63: src/CMakeFiles/QUIT.dir/quit.f90.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:709: src/CMakeFiles/QUIT.dir/all] Error 2
make[1]: *** [Makefile:130: all] Error 2
make: *** [Makefile:10: spectral] Error 2
有人可以提供一些建议吗?我将感激不尽。
您应该使用如下命令安装 libhdf5:
apt-get install libhdf5-serial-dev
如果您从源代码手动构建该库,则在编译项目时需要告诉编译器在哪里可以找到 HDF5 模块。通常,它们驻留在 include 文件夹中。找到模块文件并将 -I/path/to/modules 添加到编译器选项。
我在尝试安装 DAMASK 时遇到了同样的问题。您需要使用正确的编译器从其页面上的源代码手动安装 hdf5,如 damask 说明页面和 hdf5 随附的“安装”文本文件中所述,以及正确的选项。然后使用配置中指向的 hdf5 文件夹而不是 --download-hdf5 重新配置和重新制作 PETSC。那么至少这个问题会消失。 (我现在正在和其他人斗争)。
我正在尝试在 WSL2 (Ubuntu20.04) 上安装 DAMASKhttps://damask.mpie.de/bin/view/Installation/SpectralSolver,但是,当我想制作光谱求解器时。
(base) admin@DESKTOP-FQ1FRPR:~/damask-2.0.3$ make spectral
遇到如下错误,
Building Spectral Solver
Fortran Compiler Flags:
-fopenmp -std=f2008ts -pedantic-errors -O2 -xf95-cpp-input -ffree-line-length-132 -
fimplicit-none -fmodule-private -Wall -Wextra -Wcharacter-truncation -Wunderflow -
Wsuggest-attribute=pure -Wsuggest-attribute=noreturn -Wconversion-extra -Wimplicit-
procedure -Wno-unused-parameter -ffpe-summary=all -fdefault-real-8 -fdefault-double-8
-I/home/fengyx/petsc/include -I/home/fengyx/petsc/arch-linux-c-opt/include
C Compiler Flags:
-O3 -DNDEBUG
Fortran Linker Command:
/home/admin/petsc/arch-linux-c-opt/bin/mpif90 -Wall -ffree-line-length-0 -Wno-unused-
dummy-argument -g -O -fopenmp -O2 -Wl,-undefined,dynamic_lookup <OBJECTS> -o
<TARGET> <LINK_LIBRARIES> -L/home/admin/petsc/arch-linux-c-opt/lib -Wl,-
rpath,/home/admin/petsc/arch-linux-c-opt/lib -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/9
-L/usr/lib/gcc/x86_64-linux-gnu/9 -lpetsc -lHYPRE -lcmumps -ldmumps -lsmumps -lzmumps -
lmumps_common -lpord -lpthread -lscalapack -lspqr -lumfpack -lklu -lcholmod -lbtf -
lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lsuperlu -lsuperlu_dist -lml -
lfftw3_mpi -lfftw3 -lflapack -lfblas -lhdf5_hl -lhdf5 -lchaco -lparmetis -lmetis -
ltriangle -lm -lz -lstdc++ -ldl -lmpifort -lmpi -lgfortran -lgcc_s -lquadmath
-- Configuring done
-- Generating done
-- Build files have been written to: /home/admin/damask-2.0.3/build/spectral
[ 1%] Built target PREC
[ 3%] Built target C_ROUTINES
[ 7%] Building Fortran object src/CMakeFiles/QUIT.dir/quit.f90.o
[ 7%] Built target SYSTEM_ROUTINES
/home/admin/damask-2.0.3/src/quit.f90:29:5:
29 | use hdf5
| 1
Fatal Error: Cannot open module file ‘hdf5.mod’ for reading at (1): No such file or directory
compilation terminated.
make[3]: *** [src/CMakeFiles/QUIT.dir/build.make:63: src/CMakeFiles/QUIT.dir/quit.f90.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:709: src/CMakeFiles/QUIT.dir/all] Error 2
make[1]: *** [Makefile:130: all] Error 2
make: *** [Makefile:10: spectral] Error 2
有人可以提供一些建议吗?我将感激不尽。
您应该使用如下命令安装 libhdf5:
apt-get install libhdf5-serial-dev
如果您从源代码手动构建该库,则在编译项目时需要告诉编译器在哪里可以找到 HDF5 模块。通常,它们驻留在 include 文件夹中。找到模块文件并将 -I/path/to/modules 添加到编译器选项。
我在尝试安装 DAMASK 时遇到了同样的问题。您需要使用正确的编译器从其页面上的源代码手动安装 hdf5,如 damask 说明页面和 hdf5 随附的“安装”文本文件中所述,以及正确的选项。然后使用配置中指向的 hdf5 文件夹而不是 --download-hdf5 重新配置和重新制作 PETSC。那么至少这个问题会消失。 (我现在正在和其他人斗争)。