치명적인 오류: 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
'source' 카테고리의 다른 글
| 초기화, Guava UnmutableMap (0) | 2022.09.01 |
|---|---|
| glibc의 stren은 왜 이렇게 복잡해야 빨리 실행할 수 있나요? (0) | 2022.09.01 |
| Vuex를 사용한 비동기 콜 발신 (0) | 2022.09.01 |
| 전체 새로 고침 후 항목이 표시되지 않는 Vuetify v-select (0) | 2022.09.01 |
| 외부 테마 파일에 의해 생성되는 Dart SAS 경고 비활성화 (0) | 2022.09.01 |