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
相关推荐
Haven-5 分钟前
Linux常见命令
linux·基本指令
IT 小阿姨(数据库)18 分钟前
PgSQL中pg_stat_user_tables 和 pg_stat_user_objects参数详解
linux·运维·数据库·sql·postgresql·oracle
MChine慕青33 分钟前
顺序表与单链表:核心原理与实战应用
linux·c语言·开发语言·数据结构·c++·算法·链表
朱自清的诗.34 分钟前
使用虚拟机Ubuntu搭建mosquito服务器 使esp32、上位机通信
ubuntu·esp32·mosquito
虎头金猫44 分钟前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
努力学习的小廉2 小时前
深入了解linux系统—— 线程同步
linux·服务器·数据库·算法
2301_810154552 小时前
VM中CentOS 7密码重置
linux·运维·centos
zhaqonianzhu2 小时前
Linux GPIO 使用 Pinctrl 及 Gpiolib 通俗详解
linux·安卓
骄傲的心别枯萎2 小时前
RV1126 NO.16:通过多线程同时获取H264和H265码流
linux·c++·音视频·rv1126
空灵之海2 小时前
Ubuntu系统安全合规配置
linux·ubuntu·系统安全·1024程序员节