GNU Make 中 CPPFLAGS 与 CXXFLAGS 的区别

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

68687 次浏览

默认情况下,CPPFLAGS将提供给 C 预处理器,而 CXXFLAGS将提供给 C + + 编译器。

对于这样的问题,GNU 制作手册是一个很好的资源(参见 隐式变量)。

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

参见 给你

CPPFLAGS应该用于 C PreP处理器的标志; CXXFLAGS用于 C + + 编译器的标志。

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

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

在实践中,您需要知道每个项目都做些什么。实际上没有人使用 make 内置的默认值,如果你依赖 CPPFLAGS,例如,它的意思是“给 C 预处理器的标志”,你会发现你关心的项目使用它来代替“给 C + + 编译器的标志”。CFLAGS 标志是否传递给 C + + 编译行?有时候。不总是这样。等等,等等。