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

CXX在CMakeLists.txt中代表C++编译器,不是用CPP是因为CPP通常指C预处理器。这段代码检查是否使用GNUC++或Clang编译器,并添加额外的编译选项如-Wall、-Wextra和-Wpedantic来增强警告信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题来源:

在阅读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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值