slam库安装:Ceres、g2o卸载和安装,OpenCV多版本共存

Ceres

卸载Ceres

Ceres只有一个库文件在"/usr/local/lib"中,并且所有头文件都在"/usr/local/include/ceres"中

sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -r /usr/local/include/ceres /usr/local/lib/libceres.a

安装Ceres

  1. 下载最新版Ceres
  2. 安装
mkdir build && cd build
cmake ..
make
sudo make install
  1. 20.04版本上编译ceres失败,需要安装依赖
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

出现问题 E:Unable to locate package libcxsparse3.1.2

sudo gedit /etc/apt/sources.list
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe //添加到第一行
sudo apt-get update
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

使用Ceres

在编写使用到Ceres的工程时 CMakeLists.txt应该有

find_package(Ceres REQUIRED)
include_directories(${Ceres_INCLUDE_DIRS})
target_link_libraries(可执行文件名 ${CERES_LIBRARIES})

//最新的Ceres需要在CMakeLists.txt使用C++14标准
set(CMAKE_CXX_FLAGS "-std=c++14 -O3")

Ceres学习

  1. 从0开始学习Ceres NO.1
  2. 从0开始学习Ceres NO.2
  3. 从0开始学习Ceres NO.3
  4. 优化库——ceres(二)深入探索ceres::Problem

g2o

卸载g2o

g2o安装在 ”/usr/local/bin, /usr/local/include, /usr/local/lib"三个文件夹中,进入三个文件夹,在终端输入

sudo rm -rf *g20*

安装g2o

git clone https://github.com/RainerKuemmerle/g2o   # 克隆最新版本g2o
cd g2o
mkdir build
cd build
cmake ..
make -j10      # 注意,这里尽量使用更多的j,否则g2o安装很慢(-j4  -j6等等)
sudo make install

CMakeLists.txt中引用g2o
需要使用list 和 set,最后链接库文件的时候用的是 g2o_core 和 g2o_stuff

LIST( APPEND CMAKE_MODULE_PATH /home/mjy/slambook2/3rdparty/g2o/g2o/cmake_modules ) 
SET( G2O_ROOT /usr/local/include/g2o ) 
find_package(G2O REQUIRED)
include_directories(${G2O_INCLUDE_DIRS})
add_executable(g2oCurveFitting g2oCurveFitting.cpp)
target_link_libraries(g2oCurveFitting g2o_core g2o_stuff)

g20的学习与使用

g2o库的学习与使用

OpenCV

OpenCV

unbuntu18.04自带opencv3.2.0版本和安装opencv4.5.0版本

安装过程

1. 首先进入opencv4.5的目录下,创建并进入build文件
2. $ cd opencv4.5
3. $ mkdir build && cd build

在/usr/local目录下创建空文件夹opencv45,通过cmake命令设置opencv的打包目录,这一步是重点,opencv默认的打包路径为/usr/local,为了使opencv多版本共存,必须将不同版本的opencv打包到不同的目录下,核心问题在于 CMAKE_INSTALL_PREFIX=…

sudo mkdir /usr/local/opencv45
cmake -D CMAKE_BUILD_TYPE=Release  -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local/opencv45 ..
make -j10   //根据电脑核心数
sudo make install //开始配置opencv到opencv45下

打开配置 ~/.bashrc,在文件末尾添加以下代码,并通过source生效,需要opencv3.2.0时注释掉下面两行

export PKG_CONFIG_PATH=/usr/local/opencv45/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv45/lib

查看opencv版本
pkg-config --modversion opencv

由于opencv4自己没有pkgconfig这个文件,可以把ubuntu自带opencv3下的/usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc 文件复制到/usr/local/lib/pkgconfig/ 下
在这里插入图片描述
使用
在写CMakeLists.txt时,如果只有一个版本的opencv,我们一般直接使用

find_package(OpenCV REQUIRED) //使用系统默认的opencv3.2.0
使用opencv4.5.0
set(OpenCV_DIR /usr/local/opencv45/share/OpenCV)  // set(CMAKE_PREFIX_PATH "/usr/local/opencv45") 
find_package(OpenCV 4 REQUIRED) 

Eigen

Eigen是C++中一个开源模板库,支持线代运算,矩阵、矢量运算,数值分析几其相关的算法。

Eigen安装

  1. 终端apt安装
	1. sudo apt-get install libeigen3-dev

Eigen只包含头文件,因此它不需要编译,只需要引入头文件即可编译项目。Eigen头文件默认安装位置:/usr/local/include/eigen3
为了在使用是包含头文件 #include <Eigen/Core> ,而不是 #include <eigen3/Eigen/Core> ,需要讲eigen复制到/usr/local/include/下

	sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

  1. 源码安装
    Eigen官网:下载对应版本
	cd eigen-3.4.0
	mkdir build
	cd build
	cmake ..
	sudo make install

	#安装后,头文件安装在/usr/local/include/eigen3/
	#移动头文件

 	sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 
  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值