Ubuntu 18.04 安装 CMake & Ceres-Solver 记录

1. 安装 CMake-3.22.1

不可卸载原有版本 CMake(防止 ROS 出现问题),只需建立软链接即可

  • 1. 源码下载并解压

    powershell 复制代码
    wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
    tar -xvzf cmake-3.22.1.tar.gz
  • 2. 移动到合适目录

    powershell 复制代码
    sudo mv cmake-3.22.1 /usr/local/bin
  • 3. 编译安装

    powershell 复制代码
    cd ~/usr/local/bin/cmake-3.22.1
    ./bootstrap
    make -j4
    sudo make install
  • 4. 建立软链接

    powershell 复制代码
    sudo ln -sf /usr/local/bin/cmake-3.22.1/bin/* /usr/bin/
  • 5. 查看版本

    powershell 复制代码
    cmkae --version
    powershell 复制代码
    # 如果报错 Cmake error could not find CMAKE_ROOT,则执行下行代码
    hash -r 
  • 6. 添加环境变量并更新

    powershell 复制代码
    sudo gedit ~/.bashrc
    # 最后一行添加下行代码
    export PATH=$PATH:/opt/cmake-3.22.1/bin
    powershell 复制代码
    source ~/.bashrc 

2. 安装 Ceres-Solver-1.14.0

2.1 安装 gflags

powershell 复制代码
git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
# glog 在最后编译时,需要链接 gflags 中一个文件,因此安装时要设置 "仅创建动态库"
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make -j4
sudo make install

2.2 安装 glog

下载 0.5.0 版本https://github.com/google/glog/archive/refs/tags/v0.5.0.tar.gz
使用 git clone 直接下载会存在问题https://github.com/ceres-solver/ceres-solver/issues/735

powershell 复制代码
tar -xvzf glog-0.5.0.tar.gz
cd glog-0.5.0
mkdir build && cd build
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make -j4
sudo make install

2.3 其他依赖库安装

powershell 复制代码
sudo apt-get update
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse" -u
powershell 复制代码
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2

2.4 安装 Ceres-Solver

powershell 复制代码
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
git checkout -b build 1.14.0
mkdir build
cd build
cmake ..
make -j4
sudo make install
相关推荐
高冷的肌肉码喽32 分钟前
Linux-进程间的通信
linux·运维·服务器
乖乖是干饭王35 分钟前
Linux系统编程中的_GNU_SOURCE宏
linux·运维·c语言·学习·gnu
jekc86842 分钟前
禅道18.2集成LDAP
linux·运维·服务器
weixin_434936281 小时前
k8S 命令
linux·容器·kubernetes
weixin_307779131 小时前
Linux下GCC和C++实现统计Clickhouse数据仓库指定表中各字段的空值、空字符串或零值比例
linux·运维·c++·数据仓库·clickhouse
yzx9910133 小时前
Linux 系统中的算法技巧与性能优化
linux·算法·性能优化
fengyehongWorld3 小时前
Linux Docker的简介
linux·docker
upp4 小时前
【bug】Error: /undefinedfilename in (/tmp/ocrmypdf.io.9xfn1e3b/origin.pdf)
ubuntu·pdf·bug·ghostscript
曹瑞曹瑞4 小时前
VMware导入vmdk文件
linux·运维·服务器
Johny_Zhao4 小时前
2025年6月Docker镜像加速失效终极解决方案
linux·网络·网络安全·docker·信息安全·kubernetes·云计算·containerd·yum源·系统运维