CMake 错误:找不到 CMAKE_ROOT?

ell*_*len 12 cmake 14.04

我正在尝试使用 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 上。很高兴根据需要提供更多信息。

谢谢!

sso*_*low 7

我对任何 cmake 都遇到了相同的错误,包括cmake --version,并且“重新安装cmakecmake-data重新启动您的外壳”答案不起作用,因此我尝试手动设置CMAKE_ROOTdpkg -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)

  • 运行`。~/.bashrc` 为我解决了问题! (2认同)