source

치명적인 오류: mpi.h: 해당 파일 또는 디렉토리 #이(가) 없습니다.

goodcode 2022. 9. 1. 23:14
반응형

치명적인 오류: mpi.h: 해당 파일 또는 디렉토리 #이(가) 없습니다.

제 대본을 편집하는 데 있어서

#include <mpi.h>

그런 파일이나 디렉토리가 없다고 합니다.그러나 mpi.h로의 경로를 포함하면

#include "/usr/include/mpi/mpi.h"

(경로가 올바름)이 반환됩니다.

In file included from /usr/include/mpi/mpi.h:2087:0,
                 from lbm.cc:7:
/usr/include/mpi/openmpi/ompi/mpi/cxx/mpicxx.h:35:17: fatal error: mpi.h: No such file or directory
 #include "mpi.h"
                 ^
compilation terminated.

이거 고칠 줄 아는 사람?

문제는 MPI 컴파일러 래퍼를 사용하지 않는다는 것입니다.MPI 프로그램을 컴파일할 때는 항상 MPI 래퍼를 사용해야 합니다.

  • C -mpicc
  • C++ -mpiCC,mpicxx,mpic++
  • 포트란 -mpifort,mpif77,mpif90

이러한 래퍼는 프로그램을 컴파일할 때 적절한 컴파일러 플래그, 라이브러리, 포함 디렉토리, 라이브러리 디렉토리 등이 모두 포함되어 있는지 확인하는 모든 더러운 작업을 수행합니다.

시스템에서 Linux 패키지를 놓치고 있었습니다.

sudo apt install libopenmpi-dev
pip install mpi4py

(그것이 성공했는지 확인하기 위한 좋은 즉각적인 테스트인 것을 사용한다.)

성공했습니다.

다음 작업을 수행할 수 있습니다.

$ mpicc -showme 

결과:

gcc -I/Users/<USER_NAME>/openmpi-2.0.1/include -L/Users/<USER_NAME>/openmpi-2.0.1/lib -lmp

이 명령어는 mpicc 컴파일에 필요한 라이브러리를 표시합니다.

예:

$ mpicc -g  -I/Users/<USER_NAME>/openmpi-2.0.1/include -o [nameExec] [objetcs.o...] [program.c] -lm


$ mpicc -g  -I/Users/<USER_NAME>/openmpi-2.0.1/include -o example file_object.o my_program.c otherlib.o -lm

이 명령어는 프로그램과 함께 실행 파일을 생성합니다.예를 들어 다음과 같이 실행할 수 있습니다.

$ ./example

시스템 Ubuntu 16.04.인스톨을 실시했습니다.

sudo apt install libopenmpi-dev

mpiCC를 사용하여 컴파일을 하고 나서

Ubuntu 18.04에서는 다음을 설치해야 했습니다.

sudo apt install lam4-dev

위에서 제시한 바와 같이

/usr/lib/openmpi/include 

인크루드 패스로 이 문제를 해결합니다(내 경우).

Fedora의 경우:

dnf install openmpi-devel

Debian에는 다음이 포함되어 있는 것 같습니다.

  • mpiCC.openmpi
  • mpic++.openmpi
  • mpicc.openmpi
  • mpicxx.openmpi
  • mpif77.openmpi
  • mpif90.openmpi

각각의 심볼링크에서 mpic 등을 테스트하여 HDF5-openmpi가 유효한 경우 mpi.h를 찾을 수 있는지 확인합니다.

Debian에는 대체 시스템을 통한 symlinks가 포함되어 있지만 HDF5 openmpi 패키지와 H5 public에서 참조된 mpi.h 사이의 적절한 경로가 발견되지 않습니다.h 헤더

Mac 12.2에 설치했습니다.brew install openmpi헤더 파일이 아래에 있습니다./opt/homebrew/Cellar/open-mpi/x.x.x/include.

언급URL : https://stackoverflow.com/questions/26920083/fatal-error-mpi-h-no-such-file-or-directory-include-mpi-h

반응형