ubuntu18.04 安装ceres,g2o,以及cmake升级

背景:在进行slam开发时,需要的一些包

一.ceres安装

1. 下载Ceres
方法一:直接下载
下载链接:https://github.com/ceres-solver/ceres-solver
这里我下载的是2.0.0版本,下载后解压在主目录。
方法二:使用 git 命令下载

git clone https://ceres-solver.googlesource.com/ceres-solver

2. 安装相关依赖

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

可能会出现无法定位libcxsoarse3.1.2的问题:

ubuntu18.04 安装ceres,g2o,以及cmake升级_第1张图片

解决方法:

第一步,打开sources.list
第二步,将下面的源粘贴到最上方sources.list
第三步,更新源
第四步,重新输入依赖项安装命令安装依赖项

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

3. 编译

进入到下载好的文件中,创建build文件夹,进行CMake的编译

cd ceres-solver-2.0.0
mkdir build
cd build
cmake ..
make

4. 安装

sudo make install

一般编译出可执行程序用make就行了,而sudo make install这句话的意思,把可执行文件放到固定路径中去,变成环境变量。以后写代码只要包含了环境变量就可以使用这些二进制文件。

二.g2o安装

1.SLAM算法中常用的g2o库,我们源码编译安装g2o,首先下载:

git clone https://github.com/RainerKuemmerle/g2o.git

2.安装依赖项:

sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install qtdeclarative5-dev
sudo apt-get install qt5-qmake
sudo apt-get install libqglviewer-dev

3.编译:

cd g2o
mkdir build
cd build
sudo ldconfig
cmake ..
make

注意,一定要在编译前进入build,进行sudo ldconfig。

ldconfig是一个动态链接库管理命令

安装完成某个工程后生成许多动态库,为了让这些动态链接库为系统所共享,还需运行动态链接库的管理命令–ldconfig。(直接sudo ldconfig即可)。

4. 安装:

sudo make install

三.cmake 升级

在装g2o的时候,对cmake的版本有要求,所以需要升级,如图。(但是注意:千万不要先卸载cmake,在重新装,直接升级就好了,否则装的ROS就会被卸载掉)

ubuntu18.04 安装ceres,g2o,以及cmake升级_第2张图片

  

安装步骤:

1. 查看当前cmake版本:

cmake -version

2. 卸载当前cmake:(如果安装了ROS跳过此步

sudo apt remove cmake

3. 下载cmake:

 可直接从cmake官网下载新版本,也可执行如下语句:

wget http://www.cmake.org/files/v3.16/cmake-3.16.6.tar.gz

我这里下载的是cmake-3.16.6版本。

或是去文件库下载:Index of /files/v3.16

备注:官网给出两种版本,一种是Source版(推荐使用)的,另一种是Binary distributions里面的Linux x86_64,这是已经编译好的可执行版,直接拿来用的,只需要建立软连接即可,通过建立软链接调用Cmake-gui来使用cmake。

我这里下载的是以.tar.gz结尾的,source版的。

4. 解压与安装:

tar xf cmake-3.16.6.tar.gz #解压,也可以右键直接提取出来
cd cmake-3.16.6
sudo apt-get install build-essential 

去文件夹看,如果有锁说明有权限设置,返回cmake-3.16.6的上层目录,修改文件权限(没有锁就不用执行这句)

sudo chmod -R 777 cmake-3.16.6
./bootstrap

此步若有报错,看下面的遇到错误的解决办法

make
make install

验证:

cmake --version

遇到错误的解决办法:

错误1:运行./bootstrap时出现报错:

-- Looking for gethostname
-- Looking for gethostname - found
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) 
CMake Error at Utilities/cmcurl/CMakeLists.txt:454 (message):
  Could not find OpenSSL.  Install an OpenSSL development package or
  configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.


-- Configuring incomplete, errors occurred!
See also "/home/whlg/cmake-3.16.6/CMakeFiles/CMakeOutput.log".
See also "/home/whlg/cmake-3.16.6/CMakeFiles/CMakeError.log".
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake
---------------------------------------------

提示找不到OpenSSL,查看错误日志,缺少软件包。

解决方案:

sudo apt-get install libssl-dev

再运行

./bootstrap

错误2:make install时出现报错:

[100%] Built target foo
Install the project...
-- Install configuration: ""
CMake Error at Source/kwsys/cmake_install.cmake:41 (file):
  file cannot create directory: /usr/local/doc/cmake-3.16/cmsys.  Maybe need
  administrative privileges.
Call Stack (most recent call first):
  cmake_install.cmake:42 (include)


Makefile:76: recipe for target 'install' failed
make: *** [install] Error 1

解决方案:

sudo make install

错误3:执行cmake --version时提示没有那个文件或目录:

bash: /usr/bin/cmake: 没有那个文件或目录

解决方案:

使用which cmake查找cmake的安装路径,默认是在/usr/local/bin/cmake,而系统会默认去/usr/bin中去寻找。

做一个链接即可:

ln -s /usr/local/bin/cmake /usr/bin 

提示没有权限的话加上sudo。

参考文章:

1.(81条消息) Ubuntu18.04安装Ceres_杰尼君的博客-CSDN博客_ubuntu18安装ceres

2.(81条消息) ubuntu18.04安装g2o_弓满路长的博客-CSDN博客_ubuntu18.04安装g2o

3.cmake安装高版本 - 寄生的鱼 - 博客园 (cnblogs.com)

你可能感兴趣的:(ubuntu)