Hier ist ein einfaches MPI "Hallo, Welt!" Programm.Öffnen Sie MPI "Hallo, Welt!" kompiliert nicht
#include <stdio.h>
#include <mpi.h>
int main(int argc, char **argv)
{
int size, rank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("SIZE = %d RANK = %d\n",size,rank);
MPI_Finalize();
return(0);
}
Allerdings ist es nicht zu kompilieren scheinen:
Undefined first referenced
symbol in file
MPI::Datatype::Free() /var/tmp//ccE6aG2w.o
MPI::Win::Free() /var/tmp//ccE6aG2w.o
MPI::Comm::Comm() /var/tmp//ccE6aG2w.o
ld: fatal: symbol referencing errors. No output written to main
collect2: ld returned 1 exit status
Ich habe viel gegoogelt, betrachtet Mailinglisten, Tausende von ihnen. Sie sagen, dass libmpi_cxx
nicht verbindet. Aber es ist in den Compiler-Flags.
Hier --showme
Daten:
mpic++ --showme:compile
-I/usr/openmpi/ompi-1.5/include -I/usr/openmpi/ompi-1.5/include/openmpi
mpic++ --showme:link
-R/opt/mx/lib -R/usr/openmpi/ompi-1.5/lib -L/usr/openmpi/ompi-1.5/lib -lmpi -lopen-rte -lopen-pal -lnsl -lrt -lm -ldl -lsocket -lmpi_cxx
Mein Compiler g ++.
verknüpfen Sie richtig die (richtige) Bibliothek? –
@MarkGarcia was meinst du nach richtiger Verlinkung? – efpies
Können Sie uns die vollständige (n) Befehlszeile (n) zeigen, die Sie zum Kompilieren und Verknüpfen dieses Codes verwenden? Wie geschrieben, sollte Ihr Code in der Lage sein, mit 'mpicc' zu kompilieren und zu verlinken, da er keinen Bezug zu den C++ - Bindings herstellt. – Novelocrat