Dies ist der Befehl mpiCC.lam, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
mpicc, mpiCC / mpic++ – LAM/MPI C/C++-Programme kompilieren.
ZUSAMMENFASSUNG
mpicc [-showme|-showme:compile|-showme:link] ...
mpiCC [-showme|-showme:compile|-showme:link] ...
mpic++ [-showme|-showme:compile|-showme:link] ...
OPTIONAL
-Zeig es mir
Ruft den zugrunde liegenden C/C++-Compiler nicht auf. Stattdessen wird die Befehlszeile angezeigt
die ausgeführt werden würde, um das C/C++-Programm zu kompilieren.
-showme:kompilieren
Ruft nicht den zugrunde liegenden C/C++-Compiler auf. Stattdessen wird der Compiler angezeigt
Flags, die dem C/C++-Compiler bereitgestellt werden.
-zeige:link
Ruft nicht den zugrunde liegenden C/C++-Compiler auf. Stattdessen werden die Linker-Flags angezeigt
das würde dem C/C++-Compiler zur Verfügung gestellt werden.
Weitere Informationen finden Sie auch in den cc(1) und CC(1) (oder was auch immer Ihre zugrunde liegenden C/C++-Compiler sind) für alle anderen
nach.
BESCHREIBUNG
mpicc und mpiCC (mpic++ ist ein Synonym für mpiCC Wird für Dateinamen bereitgestellt, die nicht unterstützt werden
(bei Dateinamen muss die Groß-/Kleinschreibung beachtet werden) sind praktische Wrapper für das lokale native C und C++
Compiler. Die Übersetzung eines LAM-Programms erfordert die Verknüpfung des LAM-Spezifikums
Bibliotheken, die sich möglicherweise nicht in einem der Standardsuchverzeichnisse von befinden ld(1). Es
erfordert häufig auch die Einbeziehung von Header-Dateien, die möglicherweise auch nicht in einem Standard enthalten sind
mpicc übergibt seine Argumente zusammen mit -I, -L an den lokalen nativen C-Compiler
und -l-Optionen, die von LAM-Programmen benötigt werden. Darin sind alle notwendigen Optionen für ROMIO enthalten
und/oder C++-Bindungsunterstützung (wenn ROMIO/C++-Unterstützung beim Kompilieren von LAM enthalten war).
mpiCC (und deshalb mpic++) ist ähnlich, ruft jedoch stattdessen den nativen C++-Compiler auf.
Das LAM-Team starker ermutigt zur Verwendung mpicc und mpiCC anstatt zu versuchen, einen Link zu erstellen
die LAM-Bibliotheken manuell. Dadurch kann sich die spezifische Implementierung von LAM ändern
ohne Änderungen an Linker-Direktiven in den Makefiles der Benutzer (dem spezifischen Satz von) zu erzwingen
Die zugrunde liegenden LAM-Bibliotheken wurden bereits mehrfach geändert und werden sich wahrscheinlich noch einmal ändern
in zukünftigen Versionen).
In der Tat seit mpicc/mpiCC Es gibt dort sehr dünne Wrapper auf einem zugrunde liegenden Compiler
sind sehr, sehr wenige zwingende Gründe nicht benutzen mpicc/mpiCC. Wenn es nicht möglich ist
- mpicc/mpiCCden -showme:kompilieren und -zeige:link Stattdessen sollten Argumente verwendet werden.
Beispielsweise:
Shell$ cc -c file1.c `mpicc -showme:compile`
Shell$ cc -c file2.c `mpicc -showme:compile`
Shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
VARIABLEN
Standardmäßig mpicc verwendet den C-Compiler, der bei der Konfiguration von LAM ausgewählt wurde (mit dem
--with-cc-Flag auf ./configure oder indem Sie vorher die Umgebungsvariable CC setzen
./configure wurde aufgerufen) als lokaler nativer C-Compiler, dies kann jedoch durch überschrieben werden
Umgebungsvariable LAMMPICC (ein älterer Name für diese Umgebungsvariable ist LAMHCC –
dies funktioniert auch noch, aber seine Verwendung ist veraltet.
Ebenso mpiCC verwendet den C++-Compiler, der bei der Konfiguration von LAM ausgewählt wurde (mit dem
--with-cpp-Flag auf ./configure setzen oder die Umgebungsvariable CXX vor dem Aufruf festlegen
./configure) standardmäßig, dies kann jedoch durch die Umgebungsvariable LAMMPICXX überschrieben werden
(Ein älterer Name für diese Umgebungsvariable ist LAMHCP – das funktioniert auch immer noch, aber es ist
Verwendung ist veraltet).
Wenn die Umgebungsvariable LAMHOME eingestellt ist, mpicc und mpiCC wird seinen Wert als verwenden
Speicherort des LAM-Installationsverzeichnisses anstelle des Werts, in den kompiliert wurde
mpicc/mpiCC. Das bedeutet, dass mpicc/mpiCC wird den Wert von verwenden LAMHOME als Basis für
Erstellen Sie die Argumente -I und -L, die an den Compiler auf niedrigerer Ebene übergeben werden, nicht die
Installationsverzeichnis, das wann angegeben wurde mpicc/mpiCC wurden erschaffen. Das ist fast
immer eine schlechte Idee.
Die Verwendung von LAMHOME wird abgesehen von einigen seltenen Konfigurationsfällen in seltsamen Fällen abgeraten
vernetzte Sites (in diesem Fall sollte Ihr Systemadministrator dies wahrscheinlich einrichten) und
für fortgeschrittene Benutzer mit mehreren LAM/MPI-Installationen, die wirklich wissen, was sie sind
tun; wenn die LAMHOME Umgebungsvariable unbeabsichtigt gesetzt gelassen wird, kann dies zu
enorme Benutzerverwirrung. Zum Beispiel, wenn LAMHOME verweist auf die LAM-Installation A, aber die
Benutzer PATH zeigt auf die LAM-Installation B, dann obwohl B's mpicc verwendet werden, die
Benutzerprogramm wird kompiliert und gegen die LAM-Installation A gelinkt.
Die LAMHOME Umgebungsvariable wird hauptsächlich nur aus Gründen der Abwärtskompatibilität beibehalten;
es ist für die normale Funktion von LAM/MPI nicht erforderlich. Das LAM-Team rät von der Verwendung von
die LAMHOME Umgebungsvariable und plädiert stattdessen dafür, einfach die PATH richtig
um zwischen mehreren LAM/MPI-Implementierungen zu wechseln.
ANMERKUNG
Frühere Versionen von LAM förderten die Verwendung von hcc und hp zum Kompilieren von LAM und/oder MPI C und
C++-Anwendungen bzw. In sehr alten Versionen von LAM, hcc und hp nicht
automatisch hinzufügen -lmpi zur Befehlszeile. hcc und hp wurden schließlich veraltet und
Ersetzt mit mpicc und mpiCC (oder mpic++ auf Dateisystemen, bei denen die Groß-/Kleinschreibung nicht beachtet wird). Der
ausführbare Dateien hcc und hp sind jetzt nur noch symbolische Links zu mpicc und mpic++Jeweils
Nur für den Fall, dass es jemanden gibt, der diese Namen noch verwendet. Es sollte harmlos sein
das Zusätzliche übergeben -lmpi; mpicc und mpic++ sollte stillschweigend das Richtige tun (nur
Link in der MPI-Bibliothek einmalig).
Nutzen Sie mpiCC.lam online über die Dienste von onworks.net