如何解决 CMake 错误 "Could not find MPI"

How do I resolve the CMake error "Could not find MPI"

我正在尝试 运行 CMakeLists.txt 文件(48 小时)全新 ubuntu 20.04.3 安装。当 运行ning cmake .

时,我不断收到以下错误
-- Could NOT find MPI_CXX (missing: MPI_CXX_WORKS)
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find MPI (missing: MPI_CXX_FOUND) (found version "3.1")
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.16/Modules/FindMPI.cmake:1688 (find_package_handle_standard_args)
  CMakeLists.txt:16 (find_package)


-- Configuring incomplete, errors occurred!

据我所知 CMakeLists.txt 中的相关行如下:

# check MPI package...
find_package(MPI REQUIRED)
set(CMAKE_CXX_COMPILER mpicxx)
include_directories(${MPI_INCLUDE_DIR})

我试图通过 apt mpich 安装来解决这个问题。尽管安装有效并且 运行ning mpich --version returns(下图)错误仍然存​​在。

gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

cmake --version returns 3.16.3

我在安装每个包后都重新启动了。我也添加到我的 ~/.bashrc

export PATH=$PATH:/usr/bin/mpicc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/bin/mpicc

里面好像什么也没做(重启后又是这个)。

如果相关,我也通过apt安装了cmake, libboost-all-dev, cuda-10-1, libcudnn7, libblas-dev, liblapack-dev, mpi

对于此事,我将不胜感激。

使用CMAKE_PREFIX_PATH变量设置搜索路径。最佳做法是在命令行界面中设置该变量:

mkdir build
cd build
cmake -G "Unix Makefiles" .. -DCMAKE_PREFIX_PATH=path_to_mpi_lib

无论如何你可以在find_package命令之前设置以下变量来定位MPI(来自FindMPI.cmake的描述):

``MPIEXEC_EXECUTABLE``
  Manually specify the location of ``mpiexec``.
``MPI_HOME``
  Specify the base directory of the MPI installation.
``ENV{MPI_HOME}``
  Environment variable to specify the base directory of the MPI installation.
``ENV{I_MPI_ROOT}``
  Environment variable to specify the base directory of the MPI installation.