GNU Make中CPPFLAGS和CXXFLAGS之间的区别

时间:2009-01-30 14:10:04

标签: makefile gnu-make

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

4 个答案:

答案 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 ++编译行?有时。不总是。等等,等等。