Quelle est la différence entre CPPFLAGS et CXXFLAGS dans GNU Make?
CPPFLAGS
est censé être pour les drapeaux pour le C PréProcessor; CXXFLAGS
est pour les drapeaux du compilateur C++.
Les règles par défaut de make (sur ma machine, en tout cas) passent CPPFLAGS
à peu près tout, CFLAGS
n'est transmis que lors de la compilation et de la liaison de C, et CXXFLAGS
est uniquement passé lors de la compilation et de la liaison de C++.
Par défaut, CPPFLAGS
sera donné au préprocesseur C, tandis que CXXFLAGS
sera donné au compilateur C++.
GNU Make Manual est une bonne ressource pour des questions comme celle-ci (voir Variables implicites ).
CPPFLAGS est destiné au préprocesseur C, tandis que CXXFLAGS est destiné au compilateur C++.
Voir ici .
Par défaut, ils sont définis sur quelque chose.
En pratique, vous devez savoir ce que fait chaque projet. Pratiquement personne n'utilise ces valeurs par défaut intégrées à make, et si vous vous en remettez, par exemple, à CPPFLAGS signifiant "drapeaux pour le préprocesseur C", vous constaterez que le projet qui vous intéresse l'a utilisé pour signifier "drapeaux pour le compilateur C++" au lieu. Et l'indicateur CFLAGS est-il passé aux lignes de compilation C++? Parfois. Pas toujours. Etc, etc., etc.