【问题标题】:Cannot open module file 'hdf5.mod' for reading at (1): No such file or directory无法打开模块文件“hdf5.mod”以在 (1) 处读取:没有这样的文件或目录
【发布时间】:2021-12-02 00:48:43
【问题描述】:

我正在尝试在 WSL2 (Ubuntu20.04)https://damask.mpie.de/bin/view/Installation/SpectralSolver 上安装 DAMASK,但是,当我想制作频谱求解器时。

(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

谁能提供一些建议?我会感激不尽的。

【问题讨论】:

  • 你安装hdf5了吗?怎么样?
  • 其实我是这样安装的(sudo apt-get install libhdf5-serial-dev)。
  • 似乎存在冲突的安装。你能提供命令which -a h5fc h5pfc的结果吗?
  • 它显示,(base) admin@DESKTOP-FQ1FRPR:/mnt/c/Users/Administrator$ which -a h5fc h5pfc /home/admin/anaconda3/bin/h5fc /usr/bin/h5fc /bin/h5fc /home/admin/anaconda3/bin/h5fc /usr/local/hdf5/bin/h5fc

标签: ubuntu compiler-errors fortran hdf5 wsl-2


【解决方案1】:

我正在尝试安装 DAMASK 并遇到了同样的问题。您需要使用正确的编译器从其页面上的源代码手动安装 hdf5,如 damask 说明页面和 hdf5 提供的“安装”文本文件中所述,以及正确的选项。然后使用配置中指向的 hdf5 文件夹而不是 --download-hdf5 重新配置和重新制作 PETSC。那么至少这个问题会消失。 (我现在正和其他人一起挣扎)。

【讨论】:

  • 感谢您的回复,您介意提供更多有关安装的详细信息吗?我正在使用 DAMASK 2.0.3。我曾尝试在 PETSc 配置中使用 hdf5 1.8.18 和 1.12,但它们仍然显示相同的错误。我使用这个 '--download hdf5=/installation_directory/' 作为手动选项。
  • 正如我所说,您需要手动安装 hdf5,通过从其存储库中解压缩和编译文件,使用“--download hdf5=/installation_directory/”将不起作用。但即使你这样做,我也不确定它是否值得。 Damask 2.x 是一个过时的废弃版本,它依赖于其他程序的一些旧版本,最终我决定使用 3.x
【解决方案2】:

您应该使用如下命令安装 libhdf5:

apt-get install libhdf5-serial-dev

如果您从源代码手动构建了该库,则在编译项目时您需要告诉编译器在哪里可以找到 HDF5 模块。通常,它们位于包含文件夹中。找到模块文件并将 -I/path/to/modules 添加到编译器选项中。

【讨论】:

  • 这是结果,Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'libhdf5-dev' instead of 'libhdf5-serial-dev' libhdf5-dev is already the newest version (1.10.4+repack-11ubuntu1). 0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded. 对于定位'hdf5.mod',它显示/home/admin/anaconda3/include/hdf5.mod /home/admin/anaconda3/pkgs/hdf5-1.10.4-hb1b8bf9_0/include/hdf5.mod。我也试过插入-I/usr/local/hdf5/include,还是一样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 2023-04-06
相关资源
最近更新 更多