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
相关推荐
天才奇男子6 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
学嵌入式的小杨同学6 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
酥暮沐7 小时前
iscsi部署网络存储
linux·网络·存储·iscsi
❀͜͡傀儡师7 小时前
centos 7部署dns服务器
linux·服务器·centos·dns
Dying.Light7 小时前
Linux部署问题
linux·运维·服务器
S19017 小时前
Linux的常用指令
linux·运维·服务器
小义_8 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
梁洪飞8 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
_运维那些事儿9 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
Y1rong9 小时前
linux之文件IO
linux