CMake缓存源不匹配错误求助:清理构建目录仍无法解决
CMake缓存不匹配错误的解决办法
你执行cmake -S . -B /build时触发如下错误:
CMake Error: The source "C:/Users/Luberski/Repos/rpggame/CMakeLists.txt" does not match the source "C:/Users/Luberski/Repos/PokeTrade/CMakeLists.txt" used to generate cache. Re-run cmake with a different source directory.
即使删除项目内build目录、清理本地缓存甚至删除其他项目都无效,问题出在CMake的全局/用户级缓存残留了旧项目的记录,以下是具体解决步骤:
清理用户级CMake缓存
Windows系统中,CMake的用户缓存通常存放在C:\Users\Luberski\.cmake或%APPDATA%\CMake目录下,直接删除整个目录或其中的CMakeCache.txt及相关缓存文件夹,彻底清除旧项目的缓存痕迹。修改构建目录路径
不要使用系统根目录的/build(该路径可能被之前的PokeTrade项目占用过缓存记录),改为项目内的相对路径构建:cmake -S . -B ./build这样build目录会生成在rpggame项目根目录下,避免全局路径冲突。
强制重新生成缓存
执行构建命令时添加--fresh参数,让CMake完全忽略所有旧缓存,从头开始配置:cmake --fresh -S . -B ./build检查环境变量干扰
确认是否设置过CMAKE_SOURCE_DIR、CMAKE_BINARY_DIR等相关环境变量,这些变量会干扰CMake对源目录和构建目录的识别,临时取消后再执行构建命令。
内容的提问来源于stack exchange,提问作者Lubersky
相关产品推荐
相关产品推荐

