Odpowiedzi:
CPPFLAGS
ma być dla flagi dla C P re P rocessor; CXXFLAGS
dotyczy flag dla kompilatora C ++.
Domyślne reguły w make (przynajmniej na moim komputerze) CPPFLAGS
dotyczą prawie wszystkiego, CFLAGS
są przekazywane tylko podczas kompilowania i linkowania C i CXXFLAGS
są przekazywane tylko podczas kompilowania i linkowania C ++.
x
jest +
włączone jego stronie, ponieważ C++FLAGS
byłoby wysadzić kompilatora. ... Mogłem przybyć na imprezę późno, ale to wciąż lepsze niż przybycie na czas na niewłaściwą imprezę.
CPPFLAGS
NIE jest dla C P lus P lus, ale CXXFLAGS
jest.
Domyślnie CPPFLAGS
zostanie przekazana preprocesorowi C, natomiast CXXFLAGS
zostanie 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