В чем разница между CPPFLAGS и CXXFLAGS в GNU Make?
Ответы:
CPPFLAGSПредполагается, что для флагов для C P повторно P rocessor; CXXFLAGSпредназначен для флагов компилятора C ++.
Правила по умолчанию в make (на моей машине, во всяком случае) передаются CPPFLAGSпрактически всему, CFLAGSпередаются только при компиляции и компоновке C и CXXFLAGSпередаются только при компиляции и компоновке C ++.
xэто +оказалось на его стороне , потому что C++FLAGSвзорвут компилятор. ... Возможно, я опоздал на вечеринку, но это все равно лучше, чем прийти вовремя не на ту вечеринку.
CPPFLAGSэто НЕ для C P Lus P СЗП , но CXXFLAGS есть.
По умолчанию CPPFLAGSпередается препроцессору C, а CXXFLAGSпередается компилятору C ++.
Руководство GNU Make Manual - хороший ресурс для ответов на подобные вопросы (см. Неявные переменные ).
CPPFLAGS предназначены для препроцессора C, а CXXFLAGS - для компилятора C ++.
Смотрите здесь .
По умолчанию они на что-то настроены.
На практике вам нужно знать, что делает каждый отдельный проект. Практически никто не использует эти значения по умолчанию, встроенные в make, и если вы полагаетесь, например, на CPPFLAGS, означающее «флаги препроцессора C», вы обнаружите, что проект, который вам нужен, использовал его как «флаги для компилятора C ++». вместо. И передается ли флаг CFLAGS строкам компиляции C ++? Иногда. Не всегда. И т. Д. И т. Д. И т. Д.
make -p