Antworten:
CPPFLAGSsoll für Flaggen für den C P re P ressor sein; CXXFLAGSist für Flags für den C ++ - Compiler.
Die Standardregeln in make (auf meinem Computer jedenfalls) werden CPPFLAGSan fast alles übergeben, CFLAGSnur beim Kompilieren und Verknüpfen von C und CXXFLAGSnur beim Kompilieren und Verknüpfen von C ++.
xist ein +auf die Seite gedreht, weil C++FLAGSder Compiler in die Luft jagen würde. ... Ich bin vielleicht spät zur Party gekommen, aber das ist immer noch besser, als pünktlich zur falschen Party zu kommen.
CPPFLAGSist NICHT für C P lus P lus aber CXXFLAGS ist.
Standardmäßig CPPFLAGSwird es dem C-Präprozessor übergeben, während CXXFLAGSes dem C ++ - Compiler übergeben wird.
Das GNU Make Manual ist eine gute Quelle für Fragen wie diese (siehe Implizite Variablen ).
CPPFLAGS sind für den C-Präprozessor, während CXXFLAGS für den C ++ - Compiler sind.
Siehe hier .
Standardmäßig sind sie auf etwas eingestellt.
In der Praxis müssen Sie wissen, was jedes einzelne Projekt tut. Praktisch niemand verwendet diese in make integrierten Standardeinstellungen. Wenn Sie sich beispielsweise auf CPPFLAGS verlassen, das "Flags für den C-Präprozessor" bedeutet, werden Sie feststellen, dass das Projekt, das Sie interessiert, "Flags für den C ++ - Compiler" bedeutet. stattdessen. Und wird das CFLAGS-Flag an C ++ - Kompilierungszeilen übergeben? Manchmal. Nicht immer. Usw. usw.
make -p