GNU Make中CPPFLAGS和CXXFLAGS的区别

GNU Make中的CPPFLAGS和CXXFLAGS有什么区别?

CPPFLAGS被认为是C P处理器的标志; CXXFLAGS用于C ++编译器的标志。

make中的默认规则(在我的机器上,无论如何)都将CPPFLAGS传递给几乎所有事物,编译和链接C时只传递CFLAGS ,而编译和链接C ++时只传递CXXFLAGS

默认情况下, CPPFLAGS将被赋予C预处理器,而CXXFLAGS将被赋予C ++编译器。

GNU Make手册是这类问题的一个很好的资源(见隐式variables )。

CPPFLAGS用于C预处理器,而CXXFLAGS用于C ++编译器。

看到这里 。

默认情况下,它们被设置为某个东西。

在实践中,你需要知道每一个项目是做什么的。 实际上没有人使用make中的默认值,例如,如果依赖CPPFLAGS意思是“C预处理器的标志”,那么你会发现你关心的项目已经用它来表示“C ++编译器的标志”代替。 而且CFLAGS标志被传递给C ++编译行吗? 有时。 不总是。 等等等等