Portabler Name des C++-Compilers (und Linkers)

Portabler Name des C++-Compilers (und Linkers)

cc ist der POSIX-Name des C-Compilers. Gibt es einen allgemeinen Namen für den C++-Compiler (und Linker). Beachten Sie, dass dadurch g++auch einige Bibliotheken hinzugefügt werden, die bei Verwendung von einfachem gcc oder ld nicht eingeschlossen werden.

Antwort1

Das POSIX C-Compiler-Frontend istJetztc99; ccist weithin verfügbar, aber nicht garantiert. POSIX spezifiziert nichts C++-bezogenes, daher finden Sie dort keinen standardisierten Befehl zum Aufrufen eines C++-Compilers und -Linkers.

Gängige Praxis (siehe z. B.GNU Make) besteht darin, sich auf die Variablen CCund zu verlassen CXX. Im Fall von GNU sind die Standardwerte für diese ccbzw g++.; BSDs neigen dazu, ccund zu verwenden c++(siehe zum BeispielOpenBSD-Konfiguration). Der Zugriff auf den Linker erfolgt über den Compilertreiber und wird nicht explizit aufgerufen.

Antwort2

Was Linux betrifft, verwenden die meisten Makefiles, die ich in den letzten zwei Jahrzehnten gesehen habe, nichts anderes als gcc/ g++. Wenn sich jemand die Mühe macht, einen echten Linker und nicht GCC zu verwenden, gibt er normalerweise an ld. Ich habe das vielleicht einmal gesehen cc.

Die meisten Linux-Distributionen stellen einen symbolischen Link von cczu bereit gcc, dies ist jedoch nicht der Fall, wenn Sie GCC entfernen und stattdessen clang installieren.

Keine Ahnung, ob es portierbar ist, da beispielsweise FreeBSD kürzlich auf Clang/LVM migriert ist, andere BSDs weiterhin GCC verwenden und Mac OS ebenfalls Clang verwendet. Android hat seine eigene Toolchain.

Ich habe keine anderen Unix-Versionen verwendet, daher keine Kommentare.

Was ist Ihr Anwendungsfall? Bitte bearbeiten Sie Ihre Frage und geben Sie weitere Details an.

verwandte Informationen