Manjaro执行cmake ..时提示Could not find CMAKE_ROOT错误求助
问题复现
执行cmake ..时出现以下错误:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found incmake version 3.25.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
已尝试通过sudo pamac install base-devel安装cmake、手动设置CMAKE_ROOT环境变量、卸载重装cmake、直接调用/usr/bin/cmake等操作,问题仍未解决。
解决步骤
确认CMake模块目录的实际位置
先通过包管理工具查询CMake的文件分布:pacman -Ql cmake | grep Modules输出会显示Modules目录的路径,例如
/usr/share/cmake-3.25/Modules,此时CMAKE_ROOT应设置为该目录的上级路径/usr/share/cmake-3.25,而非/usr/share/cmake或/usr/bin/cmake。临时指定CMAKE_ROOT测试
在执行cmake前临时设置环境变量,验证路径是否正确:CMAKE_ROOT=/usr/share/cmake-3.25 cmake ..如果此命令能正常执行,再将该环境变量写入
~/.bashrc或~/.zshrc(根据你使用的shell):echo 'export CMAKE_ROOT=/usr/share/cmake-3.25' >> ~/.bashrc source ~/.bashrc检查CMake安装完整性
验证cmake包的文件是否完整:pacman -Qk cmake如果输出显示有文件缺失,执行强制重装:
sudo pacman -S --overwrite '*' cmake清理损坏的CMake缓存
当前目录下的缓存文件可能导致异常,删除后重新执行:rm -rf CMakeCache.txt CMakeFiles cmake ..排查多版本CMake干扰
检查当前调用的cmake是否为系统安装版本:which cmake如果输出不是
/usr/bin/cmake,调整PATH环境变量,确保系统路径优先,或直接使用绝对路径执行:/usr/bin/cmake ..
内容的提问来源于stack exchange,提问作者Occlusion

