Разница между CPPFLAGS и CXXFLAGS в GNU Make

Какая разница между CPPFLAGS и CXXFLAGS в GNU Make?

Ответ 1

CPPFLAGS должен использоваться для флагов для C P re P; CXXFLAGS предназначен для флагов для компилятора С++.

По умолчанию правила make (на моей машине, во всяком случае) передают CPPFLAGS почти все, CFLAGS передается только при компиляции и связывании C, а CXXFLAGS передается только при компиляции и связывании С++.

Ответ 2

По умолчанию CPPFLAGS будет передаваться препроцессору C, а CXXFLAGS - компилятору С++.

GNU Make Manual является хорошим ресурсом для таких вопросов (см. Неявные переменные).

Ответ 3

CPPFLAGS предназначены для препроцессора C, а CXXFLAGS - для компилятора С++.

Смотрите здесь.

Ответ 4

По умолчанию они настроены на что-то.

На практике вам нужно знать, что делает каждый отдельный проект. Практически никто не использует те значения по умолчанию, встроенные в make, и если вы полагаетесь, например, на CPPFLAGS, что означает "флаги для препроцессора C", вы обнаружите, что проект, о котором вы заботитесь, использовал его для обозначения "флагов для компилятора С++", вместо. И флаг CFLAGS передается в строки компиляции С++? Иногда. Не всегда. Etc и т.д. И т.д.