CFLAGS vs CPPFLAGS

Entiendo que CFLAGS (o CXXFLAGS para C ++) son para el compilador, mientras que CPPFLAGS es utilizado por el preprocesador.

Pero todavía no entiendo la diferencia.

Necesito especificar una ruta de inclusión para un archivo de encabezado que se incluye con #include, porque #include es una directiva de preprocesador, ¿es el preprocesador (CPPFLAGS) lo único que me importa?

¿En qué circunstancias necesito darle al compilador una ruta de inclusión adicional?

En general, si el preprocesador encuentra e incluye los archivos de encabezado necesarios, ¿por qué es necesario informarle sobre directorios de inclusión adicionales? ¿De qué sirve CFLAGS?

(En mi caso, en realidad encontré queAMBOS de estos me permiten compilar mi programa, lo que aumenta la confusión ... Puedo usar CFLAGSO CPPFLAGS para lograr mi objetivo (al menos en el contexto de autoconf). ¿Lo que da?)

Respuestas a la pregunta(3)

Su respuesta a la pregunta