You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMake中批量将多个变量设置为TRUE?

CMake批量设置多个变量的可行方法

你之前的写法无效是因为CMake的set命令语法规则:set(<variable> <value>... [PARENT_SCOPE]),换行后VAR1后面的所有内容都会被当作它的取值,所以才会出现VAR1的值变成"TRUEVAR2TRUE"的情况。

下面是几种更高效的批量设置方式:

1. 变量值相同时的批量设置

如果多个变量需要设置为同一个值,用foreach循环遍历变量列表即可:

foreach(var IN ITEMS VAR1 VAR2 VAR3)
  set(${var} TRUE)
endforeach()

2. 变量值不同时的批量设置

如果每个变量对应不同的值,可以将变量和值按顺序组成列表,再通过循环依次赋值:

# 按"变量1 值1 变量2 值2"的顺序定义列表
set(var_value_pairs
  VAR1 TRUE
  VAR2 FALSE
  VAR3 "Hello CMake"
)

foreach(var value IN LISTS var_value_pairs)
  set(${var} ${value})
endforeach()

3. 使用自定义宏封装

如果需要频繁批量设置变量,可以封装成宏,复用性更强:

macro(set_multiple)
  foreach(var value IN LISTS ARGV)
    set(${var} ${value})
  endforeach()
endmacro()

# 使用宏批量设置
set_multiple(
  VAR1 TRUE
  VAR2 FALSE
  VAR3 123
)

这些方法都比重复写多个set语句更简洁,也更容易维护。

内容的提问来源于stack exchange,提问作者Bei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:33:13