mpi.h를 찾을 수 없습니다

mpi.h를 찾을 수 없습니다

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>

도움이 되었기를 바랍니다. 미리 감사드립니다!

관련 정보