Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits"

2023-05-16

以前编译ceres-solver没有出现过问题,最近在编译时报出一个问题:

[ 75%] Building CXX object internal/ceres/CMakeFiles/jet_test.dir/jet_test.cc.o
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 of ‘template<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 named ‘Literal’ in ‘struct Eigen::NumTraits<ceres::Jet<double, 2> >’
 struct promote_scalar_arg<S,T,false> : promote_scalar_arg_unsupported<S,T,typename NumTraits<S>::Literal> {};
        ^
/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, 1, 0, 2, 1>, false>’:
/usr/local/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:50:1:   required by substitution of ‘template<class T> typename Eigen::internal::enable_if<true, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, typename Eigen::internal::promote_scalar_arg<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, T> > >::value>::type>, const Derived, const typename Eigen::internal::plain_constant_type<Derived, typename Eigen::internal::promote_scalar_arg<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, T> > >::value>::type>::type> >::type Eigen::MatrixBase<Derived>::operator*(const T&) const [with T = T; Derived = Eigen::Matrix<ceres::Jet<double, 2>, 2, 2>] [with T = Eigen::Matrix<ceres::Jet<double, 2>, 2, 1, 0, 2, 1>]’
/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 named ‘Literal’ in ‘struct Eigen::NumTraits<ceres::Jet<double, 2> >’
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h: In instantiation of ‘struct Eigen::internal::promote_scalar_arg<ceres::Jet<double, 2>, Eigen::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 1, 0, 2, 1> >, false>’:
/usr/local/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:50:1:   required by substitution of ‘template<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::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 2> >, 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::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 2> > > >::type Eigen::operator*(const T&, const StorageBaseType&) [with T = Eigen::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 1, 0, 2, 1> >]’
/home/ubuntu/cartographer/ceres-solver-1.11.0/internal/ceres/jet_test.cc:460:37:   required from here
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h:64:8: error: no type named ‘Literal’ in ‘struct Eigen::NumTraits<ceres::Jet<double, 2> >’
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h: In instantiation of ‘struct Eigen::internal::promote_scalar_arg<ceres::Jet<double, 2>, Eigen::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 2> >, false>’:
/usr/local/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:50:1:   required by substitution of ‘template<class T> typename Eigen::internal::enable_if<true, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, typename Eigen::internal::promote_scalar_arg<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, T> > >::value>::type>, const Derived, const typename Eigen::internal::plain_constant_type<Derived, typename Eigen::internal::promote_scalar_arg<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<typename Eigen::internal::traits<T>::Scalar, T, Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, T> > >::value>::type>::type> >::type Eigen::MatrixBase<Derived>::operator*(const T&) const [with T = T; Derived = Eigen::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 1, 0, 2, 1> >] [with T = Eigen::Transpose<Eigen::Matrix<ceres::Jet<double, 2>, 2, 2> >]’
/home/ubuntu/cartographer/ceres-solver-1.11.0/internal/ceres/jet_test.cc:460:37:   required from here
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h:64:8: error: no type named ‘Literal’ in ‘struct Eigen::NumTraits<ceres::Jet<double, 2> >’
make[2]: *** [internal/ceres/CMakeFiles/jet_test.dir/jet_test.cc.o] Error 1
make[1]: *** [internal/ceres/CMakeFiles/jet_test.dir/all] Error 2
make: *** [all] Error 2

后来在网上找了找,发现是ceres-solver和eigen3这个版本不兼容,需要重新配置一个版本。

版本在:https://pan.baidu.com/s/1pNt9xoB

解压后执行命令

 cd eigen-eigen-ce5a455b34c0

mkdir build

cd build

cmake ..

make

sudo make install

再编译ceres-solver就ok了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits" 的相关文章

随机推荐

  • 使用arecord、aplay 实现录音和播放

    Linux应用开发 第八章 ALSA应用开发 腾讯云开发者社区 腾讯云 tencent com period size 指定 period size buffer size 指定 buffer size 259条消息 使用arecord a
  • git 查看某个文件的修改记录

    1 git log filename 可以看到fileName相关的commit记录 2 git log p filename 可以显示每次提交的diff 3 查看某次提交中的某个文件变化 xff0c 可以直接加上fileName git
  • C语言wav格式详解,代码实践

    393条消息 C语言wav格式详解 xff0c 代码实践 c语言写wav文件 白屿林的博客 CSDN博客
  • RT-Thread 命令自启动详解

    408条消息 RT Thread 自动初始化详解 init app export Nameless Y的博客 CSDN博客 在msh c增加如下代码 xff0c 即可实现自启动 static int exec audio sample vo
  • (无人机方向)ros小白学习之路(一)ROS创建节点与编译

    文章目录 前言ROS创建节点与编译创建工作空间 1 创建和初始化 2 编译 3 为新建的工作空间配置系统环境ros功能包的创建1 xff1a 自定义功能包的创建2 xff1a 在github上下载功能包源码 ROS功能包常用指令1 xff1
  • 使用pjsip传输已经编码的视频

    pjsip功能很强 xff0c 做sip rtp语音通话库首选 在2 0之后 xff0c 也支持视频 不过 xff0c 它的视频功能缺省是从视频设备采集 xff0c 然后进行编译 xff0c 再发送出去的 假设 xff0c 我们已经有了视频
  • CentOS7中英文输入法及切换

    安装完CentOS7后如果没有拼音输入法 xff0c 先在输入源里找下有没有 打开设置 gt gt 区域和语言 gt gt 输入源 搜索pinyin就可以找到拼音输入法 xff0c 然后点击添加 回到设置 xff0c 选择键盘 gt gt
  • rtpsession详解

    以下过程仅分析推送视频模式 xff1a 服务器监听rtsp端口号 xff0c 当有客户端连接后 xff0c 会创建RTSPSession xff0c 在客户端请求过程中的announce时 xff0c 会创建RTPSession xff0c
  • gdb调试coredump(使用篇)

    什么是coredump Coredump叫做核心转储 xff0c 它是进程运行时在突然崩溃的那一刻的一个内存快照 操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下 xff0c 会把进程此刻内存 寄存器状态 运行堆栈等信息转储保存在
  • ffmpeg常用基本命令(转)

    ffmpeg f s16le ar 16000 ac 2 i lucy 16k pcm output wav ffmpeg f s16le ar 48000 ac 2 i lucy 48k pcm output 48k wav ffmpeg
  • busybox详解

    转载地址 点击打开链接 1 根文件系统简介 所谓制作根文件系统 xff0c 就是创建各种目录 xff0c 并且在目录里创建相应的文件 例如 xff1a 在 bin目录下放置可执行程序 xff0c 在 lib下放置各种库等等 通常配合chro
  • Linux下查看文件和文件夹大小

    1 Linux下查看文件和文件夹大小2 删除系统日志等 场景 xff1a 在sts中执行自动部署时候maven提示 No space left on device错误 xff0c 后来经检查发现是磁盘空间满了 xff0c 用下面的方法分析发
  • 解决安装wine时的依赖问题

    因为在Linux上没有比source insight更强大的代码工具了 xff0c 故在ubuntu上必须继续使用source insight 前段时间安装过wine xff0c 什么问题也没有 xff0c 安装命令 sudo apt ge
  • ros kinect设备 gmapping 出现"No matching device found" 错误

    电脑连接上kinect v1 xff0c 运行命令 xff1a roslaunch turtlebot navigation gmapping demo launch 出现下面的错误 INFO 1511252619 048751272 No
  • 找到文件夹下所有的软链接

    这个比较简单 xff0c 使用命令 ls alR grep l
  • (无人机方向)ros小白学习之路(五)mavros消息的订阅和发布与offboard例程仿真与解析

    文章目录 前言应用mavros控制无人机消息流以mavros中setpoint position local为例子1 确定话题的功能和消息类型如果快速找到对应的mavlink消息 2 确定话题并最终找到转化为uorb消息 官方example
  • 调试rviz,并解决问题“For frame [laser]: Fixed Frame [map] does not exist”

    以rplidar为例 xff0c 运行命令 roslaunch rplidar ros rplidar launch 然后运行rviz xff0c 查看输出的雷达扫描数据 rosrun rviz rviz结果如下 xff1a 可以看到什么都
  • 解决ssh中的”Connection closed by 10.0.0.21“问题

    远程的电脑是个新安装的ubuntu xff0c 在本地执行ssh时 xff0c 出现错误 Connection closed by 10 0 0 21 解决步骤 xff1a 首先保证远程PC的ssh 服务启动 xff0c 使用命令ps e
  • navigation 调试 -2- 小车的配置问题

    1 确定传感器 xff08 sensors xff09 在小车的位置 影响 xff1a 导航 xff0c 建图 a 前提是使用kobuki机器人模板 xff0c 传感器使用深度 43 rgb摄像头 xff08 例如kinect xff09
  • Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits"

    以前编译ceres solver没有出现过问题 xff0c 最近在编译时报出一个问题 xff1a 75 Building CXX object internal ceres CMakeFiles jet test dir jet test