Ubuntu 18.04 安装 CMake Ceres-Solver 记录

server/2024/10/19 6:21:51/

CMake3221_0">1. 安装 CMake-3.22.1

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

  • 1. 源码下载并解压
    wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
    tar -xvzf cmake-3.22.1.tar.gz
    
  • 2. 移动到合适目录
    sudo mv cmake-3.22.1 /usr/local/bin
    
  • 3. 编译安装
    cd ~/usr/local/bin/cmake-3.22.1
    ./bootstrap
    make -j4
    sudo make install
    
  • 4. 建立软链接
    sudo ln -sf /usr/local/bin/cmake-3.22.1/bin/* /usr/bin/
    
  • 5. 查看版本
    cmkae --version
    
    # 如果报错 Cmake error could not find CMAKE_ROOT,则执行下行代码
    hash -r 
    
  • 6. 添加环境变量并更新
    sudo gedit ~/.bashrc
    # 最后一行添加下行代码
    export PATH=$PATH:/opt/cmake-3.22.1/bin
    
    source ~/.bashrc 
    

2. 安装 Ceres-Solver-1.14.0

2.1 安装 gflags

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

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 其他依赖库安装

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

2.4 安装 Ceres-Solver

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

http://www.ppmy.cn/server/25887.html

相关文章

区块链技术下的DApp与电商:融合创新,开启商业新纪元

区块链技术的蓬勃发展正引领着一种新型应用程序的崛起——去中心化应用程序(DApp)。DApp并非传统的中心化应用,它构建于去中心化网络之上,融合了智能合约与前端用户界面,为用户提供了全新的交互体验。智能合约&#xf…

安卓手机APP开发_媒体开发部分__保持设备处于唤醒状态

安卓手机APP开发_媒体开发部分__保持设备处于唤醒状态 目录 概述 使用唤醒锁的用法 保持屏幕在亮着 电视的环境模式 保持CPU处于运行状态 概述 为了避免多消耗电池电量,安卓设备会很快进入休眠状态.然而,也是需要保持它一直 处于唤醒的状态,来完成某些工作. 你使用的方…

ArrayList.remove()方法盲区

1、错误用法 1.1、for循环中使用remove(int index),列表从前往后遍历 如果在for循环中调用了多次ArrayList.remove(),那代码执行结果是不准确的,因为每次每次调用remove函数,ArrayList列表都会改变数组长度,被移除元素…

抽象工厂模式(Redis 集群升级)

目录 定义 Redis 集群升级 模拟单机服务 RedisUtils 模拟集群 EGM 模拟集群 IIR 定义使⽤接⼝ 实现调⽤代码 代码实现 定义适配接⼝ 实现集群使⽤服务 EGMCacheAdapter IIRCacheAdapter 定义抽象⼯程代理类和实现 JDKProxy JDKInvocationHandler 测试验证 定义 …

令牌技术详解

1. 问题引出 之前我们讲 Cookie 和 Session 时提到过一个用户登录的场景:当用户登录时,服务器端可以把用户的登录信息存在Session中 并返回给客户端对应的SessionID,客户端会把这个SessionID存在Cookie 中当下次访问该服务器时,…

linus下Anaconda创建虚拟环境pytorch

一、虚拟环境 1.创建 输入下面命令 conda create -n env_name python3.8 输入y 2.激活环境 输入 conda activate env_name 二、一些常用的命令 在Linux的控制平台 切换到当前的文件夹 cd /根目录/次目录 查看conda目录 conda list 查看pip目录 pip list查看历史命…

[Android]Jetpack Compose状态管理

在 Jetpack Compose 中,状态管理是构建交互式应用程序的核心。Compose 设计思想强调了不变性和重新组合的概念,以支持高效的 UI 更新。 一、使用 Remember 和 MutableState 管理状态 remember 和 mutableStateOf 是管理状态的基础工具,特别…

docker hub 官网

1. docker官网: Docker: Accelerated Container Application Development 2. hub官网: https://hub.docker.com/search?qnexus 有时候不好找,或者忘了,特此标记!