强制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给出的几种方案,最终实测成功的是全局变量法。

浙公网安备 33010602011771号