15

cmake CMakeLists.txt 文件中 CXX 中的“XX”是什么。
它有什么意义。

为什么它是“XX”而不是针对 CPP 文件的 PP?

4

2 回答 2

30

XX代表“++”(每个X都像旋转了 45° 的“加号”),CXX代表“C++”。

为什么是“ CXX”?

  • 由于宏标识符的限制, “ C++”是不可能的(它们不能包含 a +);
  • CPP”(代表“C Plus Plus”)通常已经用来表示“ C P re P处理器”。

例如,在 GNU Makefile 中,您可以定义以下“变量”:

  • CPPFLAGS : C 预处理器的额外标志(也用于 C++)。
  • CFLAGS   : C 编译器的额外标志。
  • CXXFLAGS : C++ 编译器的额外标志。

(通常您将CPPFLAGSandCFLAGS用于 C 项目,CPPFLAGSandCXXFLAGS用于 C++ 项目。)


另请参阅GNU Make和CFLAGS 与 CPPFLAGS中 CPPFLAGS 和 CXXFLAGS 之间的区别

也相关:正确的 C++ 文件扩展名(和重复的链接)。

于 2013-08-20T09:27:25.157 回答
5

许多文件系统不允许+在文件名中使用,这就是为什么多年来为 C++ 源文件出现了许多命名约定的原因,.cpp包括..cc.cxx

CMake 也有类似的问题,因为它的宏语言是围绕不允许包含特殊字符(如+. 这只是一个限制,以防止 CMake 的解析器变得过于复杂。所以无论何时他们写作CXX,他们真正的意思是公正C++

于 2013-08-01T06:20:34.960 回答