치명적인 오류: 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 |