Odpowiedzi:
CPPFLAGSma być dla flagi dla C P re P rocessor; CXXFLAGSdotyczy flag dla kompilatora C ++.
Domyślne reguły w make (przynajmniej na moim komputerze) CPPFLAGSdotyczą prawie wszystkiego, CFLAGSsą przekazywane tylko podczas kompilowania i linkowania C i CXXFLAGSsą przekazywane tylko podczas kompilowania i linkowania C ++.
xjest +włączone jego stronie, ponieważ C++FLAGSbyłoby wysadzić kompilatora. ... Mogłem przybyć na imprezę późno, ale to wciąż lepsze niż przybycie na czas na niewłaściwą imprezę.
CPPFLAGSNIE jest dla C P lus P lus, ale CXXFLAGS jest.
Domyślnie CPPFLAGSzostanie przekazana preprocesorowi C, natomiast CXXFLAGSzostanie przekazana kompilatorowi C ++.
Podręcznik GNU Make jest dobrym źródłem odpowiedzi na takie pytania (zobacz Zmienne niejawne ).
Domyślnie są na coś ustawione.
W praktyce musisz wiedzieć, czym zajmuje się każdy projekt. Praktycznie nikt nie używa tych domyślnych wartości wbudowanych w make, a jeśli na przykład polegasz na CPPFLAGS oznaczającym „flagi dla preprocesora C”, zobaczysz, że projekt, na którym Ci zależy, użył go do oznaczenia „flag dla kompilatora C ++” zamiast. I czy flaga CFLAGS jest przekazywana do wierszy kompilacji C ++? Czasami. Nie zawsze. Itp. Itp.
make -p