Dies ist sowohl eine Frage als auch eine Referenz und ich hoffe, dass die Menschen darauf aufbauen können, damit sie von Menschen mit ähnlichen Fragen wiederverwendet werden können.
Wie können wir eine bestimmte Version eines C / C ++ / ObjC-Compilers zuverlässig erkennen? Jetzt kenne ich die Antwort für Visual Studio und kenne teilweise die Antwort für Xcode.
Nun haben wir für den Visual Studio-Compiler _MSC_VER, der mit diesen Werten definiert ist:
%Vor%Nun für den Xcode-Compiler haben wir dies definieren:
%Vor%Aber die einzigen Werte, die ich über Google gefunden habe (Mac-Dokumente scheinen diese Werte nicht zu haben) sind:
%Vor%Kann jemand diese Liste vervollständigen oder Links zu einer vollständigen Liste hinzufügen? Und vielleicht können wir auch Informationen für andere Compiler bereitstellen.
Als jemand, der mehr als seinen gerechten Anteil an "C" herumgetragen hat, kann ich sehen, woher du kommst, also hier sind einige, um uns zu beginnen:
Für IBM CL / C ++ - Compiler:
%Vor%Für Borland C:
%Vor%Für GNU C:
%Vor%Für Watcon C:
%Vor%Es gibt eine Tabelle mit diesen Informationen hier:
Traurigerweise scheint MacOS __clang__
, __GNUCC__
und __llvm__
zu definieren, damit diese Information ein wenig verwirrt werden kann.
Aber normalerweise gilt nur ein Satz von Informationen.
Tags und Links visual-studio xcode compiler-construction