Eclipse PTP에서 C로 Hello World 프로그램을 컴파일하려고 하는데 오류 메시지가 mpi.h
.
내 경로에 및를 /usr/local/include
포함하고 /usr/local/lib
를 사용하여 검색을 실행해 보았습니다 find / -name mpi.h
. 나는 아직도해당 파일이나 디렉터리가 없습니다.실수.
설치를 시도했지만 mpich2
여전히 찾을 수 없습니다 mpi.h
.
반품:
- 디렉토리에 폴더가 없습니다
include
. 왜 그렇습니까? - 내가
mpicc
찾을 수 있습니다/usr/bin/mpicc
프로젝트를 C++ 코드로 컴파일하려고 할 때도 동일한 문제가 발생합니다. 어떻게 해야 합니까?
답변1
이 스택 오버플로 질문은 귀하의 질문에 대한 답변이 될 수 있습니다.
yum
에 따르면 mpi.h
헤더 파일은 다음 패키지에서 제공됩니다.
$ yum whatprovides '*/mpi.h'
openmpi-devel-1.8.1-1.el6.x86_64
mpich2-devel-1.2.1-2.3.el6.x86_64
mvapich2-devel-2.0rc1-1.el6.x86_64
mvapich-devel-1.2.0-0.3563.rc1.5.el6.x86_64
mvapich2-psm-devel-2.0rc1-1.el6.x86_64
mpich-devel-3.1-4.el6.x86_64
mvapich-psm-devel-1.2.0-0.3563.rc1.5.el6.x86_64
i686
버전 뿐만 아니라 대부분의 출력도 제거했습니다 . 사용하려는 항목(변형)에 따라 패키지를 선택하세요. :)
이러한 패키지의 대부분은 /usr/include
설치 시 하위 디렉터리를 생성합니다. 예를 들어 mpi.h
제공된 파일 openmpi-devel
은 에 있습니다 /usr/include/openmpi-x86_64/mpi.h
. 즉, 해당 파일을 openmpi-x86_64/mpi.h
소스 코드에 포함하거나 /usr/include/openmpi-x86_64
포함 경로에 해당 디렉터리를 추가해야 합니다.
또한 이러한 패키지 중 일부(예: mvapich-devel
)는 전혀 사용하지 않고 /usr/include
헤더를 /usr/lib64/{package}/include/
.
답변2
먼저 다음 명령을 사용하여 mpi를 설치합니다.
sudo apt 설치 mpich
sudo apt 설치 libopenmpi-dev
그런 다음 다음 명령을 사용하여 라이브러리가 설치된 위치를 확인합니다.
mpicc-쇼
마지막으로 코드에서 라이브러리가 설치된 위치에 라이브러리를 추가합니다. 예를 들면 다음과 같습니다.
#include </usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/mpi.h>
도움이 되었기를 바랍니다. 미리 감사드립니다!