CMake 中 CXXFLAGS 与 CMAKE_CXX_FLAGS 的关系

CMake 在特定条件下会将环境变量 CXXFLAGS 的值自动初始化到 CMAKE_CXX_FLAGS,但这一过程受以下规则限制:


1. 初始化条件
  • 首次配置时自动初始化‌:
    CMake 在‌首次运行配置‌(即 cmake 命令执行)时,若未显式设置 CMAKE_CXX_FLAGS,则会从环境变量 CXXFLAGS 中读取值并赋值给 CMAKE_CXX_FLAGS‌。

# 示例:环境变量传递  
export CXXFLAGS="-O2 -Wall"  
cmake -B build  # 此时 CMAKE_CXX_FLAGS 被初始化为 "-O2 -Wall"  
  • 后续配置中无效‌:

若在 CMakeLists.txt 或命令行中显式设置 CMAKE_CXX_FLAGS,后续环境变量 CXXFLAGS 将不再影响其值‌。

# 示例:显式设置覆盖环境变量  
cmake -B build -DCMAKE_CXX_FLAGS="-O3"  # 无论 CXXFLAGS 为何值,CMAKE_CXX_FLAGS 恒为 "-O3"  
2. 作用域与优先级
  • 全局变量特性‌:
    CMAKE_CXX_FLAGS&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值