Risposte:
CPPFLAGSdovrebbe 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 CPPFLAGSpraticamente a tutto, CFLAGSvengono passate solo durante la compilazione e il collegamento C, e CXXFLAGSvengono passate solo durante la compilazione e il collegamento C ++.
xè un +acceso suo lato perché C++FLAGSsarebbe far saltare il compilatore. ... Potrei essere arrivato alla festa tardi, ma è comunque meglio che arrivare in tempo alla festa sbagliata.
CPPFLAGSnon è per C P lus P lus ma lo CXXFLAGS è.
Per impostazione predefinita, CPPFLAGSverrà assegnato al preprocessore C, mentre CXXFLAGSverrà 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