Ubuntu中 cmake 版本升级,解决CMake 3.10 or higher is required
写在前面
- 今天在跑 SLAM十三讲 第三章的 visualizeGeometry 配套代码时,需要安装
Pangolin
库,下载源码编译时报错CMake 3.10 or higher is required
,记录一下解决方法。
解决方法
卸载原有的cmake(注意:实践证明可以不用删除原有cmake)- 如需卸载考虑在源码目录下使用如下指令
sudo make uninstall
- 若当前版本cmake未提供
uninstall
指令,可以参考 cmake相关:sudo make install后的卸载 - 进入
/usr/local/bin
目录(cmake 默认安装路径) - 下载源码压缩包并解压(需要其他版本只需修改相应版本即可)
wget https://github.com/Kitware/CMake/releases/download/v3.10.0/cmake-3.10.0.tar.gz
tar -zxvf cmake-3.10.0.tar.gz
- 如果出现无法下载可以浏览器访问网址直接下载
- 安装相关依赖
sudo apt install libssl-dev build-essential
- 安装
cd cmake-3.10.0
sudo ./bootstrap
sudo make
sudo make install
# 一步到位
sudo ./bootstrap && sudo make && sudo make install
- 理论上最后会自动替换位于
/usr/local/bin
目录下的 cmake 可执行文件 - 使用如下命令检查版本
cmake --version
- 此外我在测试中遇到在
/usr/bin
目录下执行上述命令时出现如下报错:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/share/cmake-3.10
cmake version 3.10.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
- 该报错尚未解决,但在其他位置均正常使用
写在最后
简单介绍三个apt-get命令
- remove – 卸载软件包
- autoremove – 卸载所有自动安装且不再使用的软件包,用于删除为满足其他包的依赖关系而自动安装的包,现在不再需要,因为依赖关系发生变化或需要它们的包同时被删除。在使用此命令时会导致对应的删除包的依赖一并删除。
- purge – 卸载并清除软件包的配置
- 任何文章中出现
apt autoremove
指令请谨慎使用,若无准确把握请不要尝试此命令,有可能导致系统崩溃等灾难性后果
附加内容
最新修订日期:3/18/2023
修正内容:
删除卸载原有的cmake部分代码
对于文章中压缩包存放路径进行了修改
致歉&鸣谢
对当初写文章时未仔细研究 autoremove 和 cmake 安装而导致读者在使用此文章时出现的种种问题与困惑致以歉意
感谢 @阿瓦达啃瓜 和 @一只小獭獭 对文章问题的指出