web-dev-qa-db-fra.com

Différence entre CPPFLAGS et CXXFLAGS dans GNU Make

Quelle est la différence entre CPPFLAGS et CXXFLAGS dans GNU Make?

128
Paul Robinson

CPPFLAGS est censé être pour les drapeaux pour le C  PProcessor; 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++.

196
Kieron

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 ).

32
Christoph

CPPFLAGS est destiné au préprocesseur C, tandis que CXXFLAGS est destiné au compilateur C++.

Voir ici .

18
starblue

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.

0
James Moore