Respuestas:
CPPFLAGS
se supone que es para banderas para el procesador C P re P ; CXXFLAGS
es para banderas para el compilador de C ++.
Las reglas predeterminadas en make (en mi máquina, en cualquier caso) pasan CPPFLAGS
a casi todo, CFLAGS
solo se pasan al compilar y vincular C, y CXXFLAGS
solo al compilar y vincular C ++.
x
está +
activado porque C++FLAGS
explotaría el compilador. ... Puede que haya llegado tarde a la fiesta, pero eso es aún mejor que llegar a tiempo a la fiesta equivocada.
CPPFLAGS
NO es para C P lus P lus pero CXXFLAGS
es.
Por defecto, CPPFLAGS
se le dará al preprocesador de C, mientras que CXXFLAGS
se le dará al compilador de C ++.
El Manual de creación de GNU es un buen recurso para preguntas como esta (ver Variables implícitas ).
Por defecto, están configurados para algo.
En la práctica, necesita saber qué hace cada proyecto. Prácticamente nadie usa esos valores predeterminados integrados en make, y si confía en, por ejemplo, CPPFLAGS que significa "banderas para el preprocesador C", encontrará que el proyecto que le interesa lo ha usado para significar "banderas para el compilador de C ++" en lugar. ¿Y se pasa el indicador CFLAGS a las líneas de compilación de C ++? Algunas veces. No siempre. Etc, etc., etc.
make -p