Hier ist ein einfaches MPI "Hallo, Welt!" Programm.
%Vor%Es scheint jedoch nicht zu kompilieren:
%Vor% Ich habe viel gegooglet, Mailinglisten gesehen, Tausende von ihnen. Sie sagen, dass libmpi_cxx
nicht verlinkt. Aber es ist in den Compiler-Flags.
Hier ist --showme
data:
Mein Compiler ist g ++.
Es ist auch viel einfacher und flexibler, openmpi- und mpi-Programme in einer "Eclipse for Parallel Application Developers" IDE zu kompilieren.
Einige Anmerkungen:
Beachten Sie, dass Open MPI 1.5 alt ist. Bitte upgraden Sie auf die neueste Version in der Open MPI 1.6.x-Reihe (derzeit 1.6.3), beachten Sie jedoch, dass die www.open-mpi.org-Website derzeit einer geplanten Jahresendpflege unterzogen wird und nicht mehr zurück sein wird bis heute, Donnerstag, 28. Dezember 2012).
Ich bin neugierig: Warum kompilieren Sie ein C-Programm mit MPIC ++? Sie brauchen nur mpicc - den C MPI Wrapper Compiler. Das würde Ihr Problem definitiv vermeiden. Wenn Sie jedoch dieses kleine C Hello-Weltprogramm als ein einfaches Beispiel verwenden und Ihr eigentliches Ziel darin besteht, ein C ++ - MPI-Programm zu kompilieren, dann ist mpic ++ der richtige Wrapper (sogar mit einem einfachen C-Programm). Wenn das der Fall ist, dann haben Sie eine Art Inkompatibilität / Fehlkonfiguration zwischen Ihrem C ++ - Compiler und dem C ++ - Compiler, mit dem Open MPI kompiliert / installiert wurde.
Wenn Sie Ihre Ausgabe von mpic ++ --showme betrachten, sieht es so aus, als hätten Sie eine Art Paketverteilung von Open MPI - R wird z. B. nicht standardmäßig in die Flags eingefügt. Woher hast du diese Open MPI-Installation? Es ist durchaus möglich, dass es mit Ihrer g ++ - Installation nicht (vollständig) kompatibel ist (z. B. wenn es mit einer anderen Version von g ++ kompiliert wurde).
Das heißt, Ihre mpic ++ --showme-Ausgabe ist auch seltsam, da sie -lmpi_cxx am Ende der Zeile auflistet. Es sollte zu links von -lmpi sein, nicht zu rechts davon. Ich werde nicht zeigen, wie Ihre Installation so borked wurde, aber das ist eine andere mögliche Ursache.
Also zusammenfassend lautet meine Antwort: