CMake 3.18.4执行--list-presets报错‘源目录不存在’求助
解决CMake 3.18.4执行
--list-presets报错的问题 你的问题核心在于CMake 3.18.4不支持--list-presets命令选项——这个参数是CMake 3.20版本才正式引入的功能。低版本CMake会把--list-presets误判为要指定的源目录路径,所以才会出现“源目录不存在(指向/--list-presets)”的错误,哪怕加-S .也没用,因为老版本根本识别不了这个选项。
可行的解决方案:
升级CMake到3.20+版本:
在GitLab Runner环境中,你可以通过CI配置脚本安装高版本CMake,比如:- 对于Debian/Ubuntu系Runner:
或者从CMake官方二进制包安装:sudo apt remove --purge cmake sudo apt update && sudo apt install -y cmakewget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.tar.gz tar -xzf cmake-3.28.3-linux-x86_64.tar.gz export PATH=$PWD/cmake-3.28.3-linux-x86_64/bin:$PATH - 升级后再执行
cmake --list-presets就能正常识别并列出预设了。
- 对于Debian/Ubuntu系Runner:
无法升级时的替代方案:
如果受限于环境不能升级CMake,你可以直接查看源码目录下的CMakePresets.json文件内容,或者用简单的脚本解析JSON来提取预设名称,比如用jq:jq '.configurePresets[].name' CMakePresets.json
内容的提问来源于stack exchange,提问作者Jelle Jan
相关产品推荐
相关产品推荐

