CMakeLists.txt中的CXX是什么意思,为什么不是CPP

问题来源:

在阅读CMakeLists.txt中,看见下面一段话

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

猜测里面CXX指的应该是C++,但是不明白为什么不是CPP,在stackoverflow上有一个比较好的回答:

问题解决

首先,XX就像旋转了45°的++,故CXX 表示 “C++”

  • 为什么不用C++?
    因为宏定义不能包含+号
  • 为什么不用CPP?
    因为CPP已经被用于表示"C PreProcessor"

举例来说,在GNU Makefile中可以定义如下变量:

CPPFLAGS : extra flags for the C preprocessor (also used in C++).
CFLAGS : extra flags for the C compiler.
CXXFLAGS : extra flags for the C++ compiler.
(Usually you will use CPPFLAGS and CFLAGS for a C project, and CPPFLAGS and CXXFLAGS for a C++ project.)

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

猜你喜欢

转载自blog.csdn.net/weixin_45910027/article/details/131006434
今日推荐