Ubuntu18.04安装Ceres,图文详解

《视觉SLAM14讲》的第6章里面,用到了Ceres库,按照本书3rdparty提供的资源编译时,会报错,原因是和eigen3版本发生冲突。网上很多解决方法是重装eigen,尝试后也未解决,而且这种方法是舍近求远了。明明ceres只是编译失败,换个合适的版本重新编译,然后安装就OK了。不需要删除eigen,然后再编译安装eigen,多麻烦。

报错信息
In file included from /usr/local/include/eigen3/Eigen/Core:348:0,
                 from /home/ubuntu/cartographer/ceres-solver-1.11.0/include/ceres/jet.h:165,
                 from /home/ubuntu/cartographer/ceres-solver-1.11.0/internal/ceres/jet_test.cc:31:
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h: In instantiation of ‘struct Eigen::internal::promote_scalar_arg<ceres::Jet<double, 2>, Eigen::Matrix<ceres::Jet<double, 2>, 2, 2>, false>:
/usr/local/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:50:1:   required by substitution oftemplate<class T> typename Eigen::internal::enable_if<true, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<typename Eigen::internal::promote_scalar_arg<ceres::Jet<double, 2>, T, Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<T, ceres::Jet<double, 2>, Eigen::internal::scalar_product_op<T, ceres::Jet<double, 2> > > >::value>::type, ceres::Jet<double, 2> >, const typename Eigen::internal::plain_constant_type<Eigen::Matrix<ceres::Jet<double, 2>, 2, 1, 0, 2, 1>, typename Eigen::internal::promote_scalar_arg<ceres::Jet<double, 2>, T, Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<T, ceres::Jet<double, 2>, Eigen::internal::scalar_product_op<T, ceres::Jet<double, 2> > > >::value>::type>::type, const Eigen::Matrix<ceres::Jet<double, 2>, 2, 1, 0, 2, 1> > >::type Eigen::operator*(const T&, const StorageBaseType&) [with T = Eigen::Matrix<ceres::Jet<double, 2>, 2, 2>]/home/ubuntu/cartographer/ceres-solver-1.11.0/internal/ceres/jet_test.cc:459:12:   required from here
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h:64:8: error: no type namedLiteralinstruct Eigen::NumTraits<ceres::Jet<double, 2> >struct promote_scalar_arg<S,T,false> : promote_scalar_arg_unsupported<S,T,typename NumTraits<S>::Literal> {};
解决方法

1、访问源代码网址:https://github.com/ceres-solver/ceres-solver,在右侧Tags下找到1.14.0的压缩包进行下载(tar.gz和zip都可以)。

在这里插入图片描述2、安装ceres相关依赖:

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

注意,书上包名是libcxsparse3.1.2,但是ubuntu从18.04开始往后都是libcxsparse3

3、解压压缩包,在终端进入该目录,然后新建build文件夹,进入build中:

tar -zxvf ceres-solver-1.14.0.tar.gz 
cd ceres-solver-1.14.0/
mkdir build
cd build/

4、cmake命令根据CMakeLists.txt对工程进行分析,make根据生成的Makefile文件对工程进行编译。最后make install安装即可!

cmake ..
make
sudo make install

像下面这样就是编译成功:
在这里插入图片描述5、安装也是非常快的。安装完成后,可以在 /usr/local/include/ceres 下找到Ceres的头文件,并在 /usr/local/lib/ 下找到名为libceres.a的库文件。如果能找到就代表安装成功了。

在这里插入图片描述

耐心是一切聪明才智的基础。

  • 76
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: 在 Ubuntu 18.04 中安装 Ceres 有以下几个步骤: 1. 安装依赖项: ``` sudo apt-get update sudo apt-get install -y libatlas-base-dev libsuitesparse-dev libeigen3-dev ``` 2. 下载 Ceres 的源码: ``` wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz tar xzf ceres-solver-1.14.0.tar.gz cd ceres-solver-1.14.0 ``` 3. 编译并安装 Ceres: ``` mkdir build cd build cmake .. make sudo make install ``` 4. 在 Ubuntu 中验证 Ceres 是否安装成功: ``` ceres_solver_example ``` 如果以上命令执行成功且没有出现错误,则说明 Ceres 已经成功安装到您的 Ubuntu 系统中了。 ### 回答2: 在Ubuntu 18.04上安装Ceres Solver需要进行以下步骤: 1. 打开终端,通过以下命令更新系统软件包列表: ``` sudo apt update ``` 2. 安装必要的软件包和依赖项: ``` sudo apt install cmake libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev ``` 3. 下载Ceres Solver源代码并解压缩: ``` wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz tar zxf ceres-solver-1.14.0.tar.gz ``` 4. 进入解压后的目录: ``` cd ceres-solver-1.14.0 ``` 5. 创建一个名为"build"的目录并进入: ``` mkdir build cd build ``` 6. 运行CMake生成构建系统: ``` cmake .. ``` 7. 使用make命令构建Ceres Solver: ``` make -j2 ``` 请注意,"-j2"参数可以根据您的系统配置进行调整,用于指定并行编译的线程数。 8. 安装Ceres Solver: ``` sudo make install ``` 这将会将Ceres Solver库文件和头文件安装到系统目录中。 9. 完成后,您可以验证安装是否成功: ``` make test ``` 如果所有测试通过,则表示Ceres Solver已正确安装在您的Ubuntu 18.04系统上。 通过按照上述步骤执行,您将成功在Ubuntu 18.04上安装Ceres Solver。 ### 回答3: 在Ubuntu 18.04上安装Ceres Solver可以按照以下步骤进行: 1. 打开终端,使用以下命令更新软件包列表: ``` sudo apt update ``` 2. 安装Ceres Solver的依赖项,包括必要的C++编译器工具链和其他库: ``` sudo apt install build-essential cmake libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev ``` 3. 下载Ceres Solver源代码。可以选择使用Git克隆存储库或手动下载源代码压缩包。如果选择使用Git,可以执行以下命令: ``` git clone https://ceres-solver.googlesource.com/ceres-solver ``` 4. 进入下载的Ceres Solver目录: ``` cd ceres-solver ``` 5. 创建一个用于构建的目录,并进入该目录: ``` mkdir build cd build ``` 6. 使用CMake配置Ceres Solver的构建过程: ``` cmake .. ``` 7. 运行make命令编译Ceres Solver: ``` make -j4 ``` 注意:可以将-j参数中的数字替换为系统上可用的CPU核心数,以加快编译速度。 8. 编译完成后,可以使用以下命令进行安装: ``` sudo make install ``` 这将安装Ceres Solver到系统目录中。 9. 最后,可以使用以下命令运行Ceres Solver的示例程序来验证安装是否成功: ``` cd ../examples ./bundle_adjustment ``` 这样就完成了在Ubuntu 18.04上安装Ceres Solver的过程。请注意,这只是一个简单的指南,具体的步骤可能会有所变化,取决于您的系统配置和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

振华OPPO

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值