我正在尝试使用 cmake 构建一个 github 项目,但遇到了很多麻烦。我正在创建一个构建目录并像这样调用 cmake:
cd github_project_directory
mkdir build
cd build
cmake ..
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/bin
CMake Error: Error executing cmake::LoadCache(). Aborting.
Run Code Online (Sandbox Code Playgroud)
我认为 cmake 的安装方式存在问题,但我似乎无法弄清楚。我试过卸载并重新安装,但是...我认为它可能会造成更多麻烦。
我在 Ubuntu 14.04 上。很高兴根据需要提供更多信息。
谢谢!
我对任何 cmake 都遇到了相同的错误,包括cmake --version,并且“重新安装cmake并cmake-data重新启动您的外壳”答案不起作用,因此我尝试手动设置CMAKE_ROOT为dpkg -L cmake-data包含Modules目录的路径。
export CMAKE_ROOT=/usr/share/cmake-3.5
Run Code Online (Sandbox Code Playgroud)
这开始cmake --version工作了,这表明我正在以某种方式处理一个cmake报告自己为 cmake 2.x 的cmake-data包,但是一个包cmake-3.5为其资源创建了一个文件夹。
结果证明,我的一个 PPA 以 14.04 用于 cmake 2.8 的相同包名提供 cmake 3.5,并且由于依赖冲突,该cmake-data包已升级到 3.5,但该cmake包被阻止在 2.8。
以下几行对我有用:
sudo apt-get remove cmake cmake-data
sudo apt-get install cmake3 cmake3-data
Run Code Online (Sandbox Code Playgroud)
小智 6
我不得不重新安装我的 cmake 来纠正同样的错误。
sudo apt-get remove cmake cmake-data
sudo -E add-apt-repository -y ppa:george-edison55/cmake-3.x
sudo -E apt-get update
sudo apt-get install cmake
Run Code Online (Sandbox Code Playgroud)
然后一定要重新获取你的 rc.local 资源。
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)