Réponses:
CPPFLAGSest censé être pour les drapeaux pour le C P re P rocessor; CXXFLAGSest pour les indicateurs pour le compilateur C ++.
Les règles par défaut de make (sur ma machine, en tout cas) passent à CPPFLAGSà peu près tout, CFLAGSne sont transmises que lors de la compilation et de la liaison de C, et CXXFLAGSne sont transmises que lors de la compilation et de la liaison de C ++.
xest un +tourné sur son côté car cela C++FLAGSferait exploser le compilateur. ... Je suis peut-être arrivé en retard à la fête, mais c'est toujours mieux que d'arriver à l'heure au mauvais parti.
CPPFLAGSn'est PAS pour C P lus P lus mais l' CXXFLAGS est.
Par défaut, CPPFLAGSsera donné au préprocesseur C, tandis que CXXFLAGSsera donné au compilateur C ++.
Le manuel GNU Make est une bonne ressource pour des questions comme celle-ci (voir Variables implicites ).
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 fiez, par exemple, à CPPFLAGS signifiant «drapeaux pour le préprocesseur C», vous constaterez que le projet qui vous tient à cœur l'a utilisé pour signifier «drapeaux pour le compilateur C ++» au lieu. Et l'indicateur CFLAGS est-il passé aux lignes de compilation C ++? Quelquefois. Pas toujours. Etc, etc., etc.
make -p