如何在 WSL 中解决 PETSc 编译过程中的'fatal error: mpi.h: No such file or directory'



我正在尝试在Windows的Windows子系统中运行的Ubuntu上安装PETSc,但是官方网页上详细介绍的步骤导致编译错误。

首先,我克隆了 PETSc 存储库并运行了配置命令:./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-openmpi --download-fblaslapack,它有效。(我之前已经安装了 OpenMPI,但是如果没有--download-openmpi开关,配置命令就不起作用。然后我执行了 ./configure 代码 (make PETSC_DIR=/mnt/c/Stuff/Petsc/petsc PETSC_ARCH=arch-linux2-c-debug all) 输出的 make 命令并得到此错误:

In file included from /mnt/c/Stuff/Petsc/petsc/src/mat/order/qmdmrg.c:4:0:
/mnt/c/Stuff/Petsc/petsc/include/petscsys.h:134:12: fatal error: mpi.h: No such file or directory
#  include <mpi.h>
^~~~~~~
compilation terminated.
gmakefile:153: recipe for target 'arch-linux2-c-debug/obj/mat/order/qmdmrg.o' failed
make[2]: *** [arch-linux2-c-debug/obj/mat/order/qmdmrg.o] Error 1

(完整的make输出在这里,上面的错误只是一小部分。显然,PETSc 制作例程找不到 MPI,但我已安装它:运行which mpicc给出了预期的/usr/bin/mpicc。有人有想法吗?感谢您的帮助!

解决方案非常简单:我只是跑make all test.与建议的命令不同。

最新更新