cmake CMakeLists.txt文件中CXX中的“XX”是什么 它的意义是什么。
为什么CPX文件中的“XX”不是PP?
答案 0 :(得分:15)
XX
代表“++”(每个X
就像一个“加”旋转了45°),CXX
代表“C ++”。
为什么“CXX
”?
C++
”由于宏标识符限制而无法使用(它们不能包含+
); CPP
”(对于“C Plus Plus”)通常已使用代表“ C P re P rocessor”。例如,在GNU Makefile中,您可以定义以下“变量”:
CPPFLAGS
:C预处理器的额外标志(也用于C ++)。CFLAGS
:C编译器的额外标志。CXXFLAGS
:C ++编译器的额外标志。(通常,您会将CPPFLAGS
和CFLAGS
用于C项目,将CPPFLAGS
和CXXFLAGS
用于C ++项目。)
另请参阅Difference between CPPFLAGS and CXXFLAGS in GNU Make和CFLAGS vs CPPFLAGS。
还相关:Correct C++ file extension(和重复的链接)。
答案 1 :(得分:4)
许多文件系统在文件名中不允许+
,这就是为什么多年来为C ++源文件出现了许多命名约定,包括.cpp
,.cc
和{{1} }。
CMake有类似的问题,因为它的宏语言是围绕不允许保存.cxx
等特殊字符的字符串构建的。这只是限制CMake的解析器变得太复杂。所以每当他们写+
时,他们真正的意思就是CXX
。