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
相关推荐
小此方44 分钟前
告别云服务器连接困扰——Windows下利用VirtualBox安装配置Ubuntu虚拟机详细教程
服务器·windows·ubuntu
一技安身8 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
代码村新手9 小时前
Linux调试器-gdb的使用
linux
新时代牛马10 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷11 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t11 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz12 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+11112 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
nLif12 小时前
基于GTK的简易MFC对话框兼容层 -- MfcToGTK
linux·c++·mfc·gtk
fengyehongWorld13 小时前
Linux 安装frp实现内网穿透
linux·运维·服务器