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的问题:
解决方法:
第一步,打开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
进入到下载好的文件中,创建build
文件夹,进行CMake
的编译
cd ceres-solver-2.0.0
mkdir build
cd build
cmake ..
make
sudo make install
一般编译出可执行程序用make就行了,而sudo make install这句话的意思,把可执行文件放到固定路径中去,变成环境变量。以后写代码只要包含了环境变量就可以使用这些二进制文件。
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就会被卸载掉)
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
-- 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
[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
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)