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
相关推荐
郝学胜-神的一滴4 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
承渊政道4 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
技术路上的探险家4 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
代码AC不AC4 小时前
【Linux】深入理解缓冲区
linux·缓冲区·标准错误
Doro再努力4 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
Lsir10110_5 小时前
【Linux】进程信号(上半)
linux·运维·服务器
开开心心就好5 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
无证驾驶梁嗖嗖5 小时前
用Plex打造随身私人影院告别影音杂乱,必须加上cpolar突破地域限制!
ubuntu
予枫的编程笔记6 小时前
【Linux进阶篇】从基础到实战:grep高亮、sed流编辑、awk分析,全场景覆盖
linux·sed·grep·awk·shell编程·文本处理三剑客·管道命令
Sheep Shaun6 小时前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区