Respostas:
CPPFLAGSé suposto ser para bandeiras do C P re P rocessor; CXXFLAGSé para sinalizadores para o compilador C ++.
As regras padrão no make (na minha máquina, de qualquer forma) passam CPPFLAGSpara praticamente tudo, CFLAGSsão passadas apenas ao compilar e vincular C e CXXFLAGSsão passadas apenas ao compilar e vincular C ++.
xé um +girou sobre ela do lado, porque C++FLAGSiria explodir o compilador. ... Posso ter chegado tarde à festa, mas ainda é melhor do que chegar a tempo da festa errada.
CPPFLAGSNÃO é para C P lus P lus, mas CXXFLAGS é.
Por padrão, CPPFLAGSserá fornecido ao pré-processador C, enquanto CXXFLAGSserá fornecido ao compilador C ++.
O GNU Make Manual é um bom recurso para perguntas como esta (consulte Variáveis implícitas ).
Por padrão, eles estão definidos para algo.
Na prática, você precisa saber o que cada projeto faz. Praticamente ninguém usa os padrões incorporados no make, e se você confiar, por exemplo, em CPPFLAGS, que significa "sinalizadores para o pré-processador C", você descobrirá que o projeto de seu interesse o usou para significar "sinalizadores para o compilador C ++" em vez de. E o sinalizador CFLAGS é passado para linhas de compilação C ++? As vezes. Nem sempre. Etc, etc, etc.
make -p