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

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

4 ответов


CPPFLAGS должен быть для флагов для C PreProcessor; CXXFLAGS для флагов для компилятора C++.

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


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

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


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

посмотреть здесь.


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

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