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&

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



