Réponses:
CPPFLAGS
est censé être pour les drapeaux pour le C P re P rocessor; CXXFLAGS
est 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, CFLAGS
ne sont transmises que lors de la compilation et de la liaison de C, et CXXFLAGS
ne sont transmises que lors de la compilation et de la liaison de C ++.
x
est un +
tourné sur son côté car cela C++FLAGS
ferait 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.
CPPFLAGS
n'est PAS pour C P lus P lus mais l' CXXFLAGS
est.
Par défaut, CPPFLAGS
sera donné au préprocesseur C, tandis que CXXFLAGS
sera 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