关于c ++:cmake CMakeLists.txt文件中CXX中的“ XX”是什么

What is “XX” in CXX in a cmake CMakeLists.txt file

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

为什么" XX"不是针对CPP文件的PP?


XX代表" ++"(每个X就像一个旋转45°的"加号"),CXX代表" C ++"。

为什么是" CXX"?

  • 由于宏标识符的限制," C++"是不可能的(它们不能包含+);
  • 通常已经使用" CPP"(对于" C Plus Plus")来代表" C PreProcessor"。

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

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

(通常,对于C项目,将使用CPPFLAGSCFLAGS,对于C ++项目,将使用CPPFLAGSCXXFLAGS。)

另请参见GNU Make中的CPPFLAGS和CXXFLAGS之间的差异以及CFLAGS与CPPFLAGS。

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


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

CMake存在类似的问题,因为其宏语言围绕不允许包含特殊字符(如+)的字符串构建。这仅仅是一个限制,可以防止CMake的解析器变得过于复杂。因此,每当他们写CXX时,他们真正的意思就是C++