GNU Make中的CPPFLAGS和CXXFLAGS之间有什么区别?
答案 0 :(得分:192)
CPPFLAGS
应该用于 C P re P rocessor的标志; CXXFLAGS
用于C ++编译器的标志。
make中的默认规则(在我的机器上,无论如何)将CPPFLAGS
传递给几乎所有内容,CFLAGS
仅在编译和链接C时传递,CXXFLAGS
仅为{{1}}在编译和链接C ++时通过。
答案 1 :(得分:31)
默认情况下,CPPFLAGS
将被赋予C预处理器,而CXXFLAGS
将被赋予C ++编译器。
GNU Make Manual是这类问题的好资源(请参阅Implicit Variables)。
答案 2 :(得分:17)
CPPFLAGS用于C预处理器,而CXXFLAGS用于C ++编译器。
请参阅here。
答案 3 :(得分:0)
默认情况下,它们被设置为某种东西。
在实践中,您需要知道每个项目的作用。实际上没有人使用make中内置的那些默认值,如果你依赖,例如,CPPFLAGS意味着“C预处理器的标志”,你会发现你关心的项目用它来表示“C ++编译器的标志”代替。 CFLAGS标志是否传递给C ++编译行?有时。不总是。等等,等等。