强制CMake高版本兼容低版本

在编译boost 1.77.0时,boost的代码里是

cmake_minimum_required(VERSION 3.5...3.16)

理论上,使用高于最高版本的CMake不会有问题,因为高版本自动兼容低版本。
但是还是遇到了版本过高导致编译失败的问题(CMake 4.x)
解决方法:
注入变量法

在/tmp/policies.cmake写入内容:
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
然后设置环境变量:
export CMAKE_GENERATOR_TOOLSET=/tmp/policies.cmake

缓存法:
缓存的优先级通常比较高

build/CMakeCache.txt 写入
CMAKE_POLICY_VERSION_MINIMUM:STRING=3.5

全局变量法

export CMAKE_POLICY_VERSION_MINIMUM=3.5

以上是AI给出的几种方案,最终实测成功的是全局变量法。

posted @ 2026-06-04 17:43  范哥范小飞  阅读(17)  评论(0)    收藏  举报