Risposte:
CPPFLAGS
dovrebbe essere per le bandiere per il rocessor C P re P ; CXXFLAGS
è per i flag per il compilatore C ++.
Le regole predefinite in make (sulla mia macchina, in ogni caso) passano CPPFLAGS
praticamente a tutto, CFLAGS
vengono passate solo durante la compilazione e il collegamento C, e CXXFLAGS
vengono passate solo durante la compilazione e il collegamento C ++.
x
è un +
acceso suo lato perché C++FLAGS
sarebbe far saltare il compilatore. ... Potrei essere arrivato alla festa tardi, ma è comunque meglio che arrivare in tempo alla festa sbagliata.
CPPFLAGS
non è per C P lus P lus ma lo CXXFLAGS
è.
Per impostazione predefinita, CPPFLAGS
verrà assegnato al preprocessore C, mentre CXXFLAGS
verrà fornito al compilatore C ++.
Il Manuale di GNU Make è una buona risorsa per domande come questa (vedi Variabili implicite ).
Per impostazione predefinita, sono impostati su qualcosa.
In pratica, devi sapere cosa fa ogni singolo progetto. Praticamente nessuno usa quelle impostazioni predefinite integrate in make e, se si fa affidamento, ad esempio, su CPPFLAGS che significano "flag per il preprocessore C", scoprirai che il progetto che ti interessa lo ha usato per significare "flag per il compilatore C ++" anziché. E il flag CFLAGS viene passato alle righe di compilazione C ++? Qualche volta. Non sempre. Ecc, ecc, ecc.
make -p