mpi.h nu a fost găsit (Unix, Compilare, Eclipse, Fișier Antet, Mpi)

Dalia Shouman a intrebat.

Am încercat să compilez programul Hello World în C, în interiorul Eclipse PTP, dar îmi dă o eroare legată de mpi.h.

Am inclus /usr/local/include și /usr/local/lib în căile mele de acces și am încercat, de asemenea, să execut o căutare cu find / -name mpi.h. Tot primesc un Nu există un astfel de fișier sau director eroare.

Am încercat să instalez mpich2, dar tot nu am putut găsi mpi.h.

De asemenea:

  • Nu există nici un folder în interiorul fișierului include de ce se întâmplă asta?
  • Pot găsi mpicc la /usr/bin/mpicc

Aceeași problemă apare atunci când încerc să compilez proiectul ca și cod C++. Ce ar trebui să fac?

Comentarii

  • Ce sistem de operare? Probabil că nu aveți instalat ceva de genul mpi-devel sau un pachet similar care să includă anteturile. –  > Por thrig.
  • centos 6.7 folosesc eclipse PTP ( parallel Tool Plateform ) –  > Por Dalia Shouman.
1 răspunsuri
John WH Smith

Această întrebare Stack Overflow răspunde la întrebarea ta.

Conform yum, , se poate spune că mpi.h fișierul antet este furnizat de următoarele pachete:

$ 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   

Am eliminat cea mai mare parte a ieșirii, precum și i686 versiuni. Alegeți pachetul în funcție de ceea ce (varianta) cu care încercați să lucrați. 🙂

Rețineți că majoritatea acestor pachete creează un subdirectoriu în /usr/include atunci când sunt instalate. De exemplu, pachetul mpi.h furnizat de openmpi-devel este disponibil la /usr/include/openmpi-x86_64/mpi.h, , ceea ce înseamnă că va trebui fie să includeți openmpi-x86_64/mpi.h în codul sursă, fie să adăugați fișierul /usr/include/openmpi-x86_64 la căile de includere.

De asemenea: unele dintre aceste pachete (cum ar fi mvapich-devel) nici măcar nu folosesc /usr/include deloc, și își pun anteturile sub /usr/lib64/{package}/include/.