mysql录入foreigen错误_使用Eigen遇到恶心报错

在尝试编译包含Eigen库的项目时遇到了编译错误,问题出现在`product_result_scalar`模板实例化和`scalar_product_traits`中未定义的`ReturnType`。错误还涉及到了`DenseBase`和`MatrixBase`类中的成员使用声明。这可能是因为矩阵类型不匹配或Eigen版本不兼容导致的。
摘要由CSDN通过智能技术生成

/home/wy/workdir/slambook/ch3/useEigen/build> make -j2

Scanning dependencies of target eigenMatrix

[50%] Building CXX object CMakeFiles/eigenMatrix.dir/eigenMatrix.cpp.o

Infile included from /usr/include/eigen3/Eigen/Core:348:0,

from/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:5:/usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘struct Eigen::internal::product_result_scalar<:matrix>, Eigen::Matrix, Eigen::DenseShape, Eigen::DenseShape>’:/usr/include/eigen3/Eigen/src/Core/Product.h:78:73: required from ‘struct Eigen::internal::traits<:product>, Eigen::Matrix, 0> >’/usr/include/eigen3/Eigen/src/Core/Product.h:151:7: required from ‘class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>’/usr/include/eigen3/Eigen/src/Core/Product.h:183:7: required from ‘class Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>’/usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<:matrix>, Eigen::Matrix, 0>’/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:52:65: required from here/usr/include/eigen3/Eigen/src/Core/Product.h:41:98: error: no type named ‘ReturnType’ in ‘struct Eigen::internal::scalar_product_traits’

typedef typename scalar_product_traits::ReturnType Scalar;^Infile included from /usr/include/eigen3/Eigen/Core:344:0,

from/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:5:/usr/include/eigen3/Eigen/src/Core/DenseBase.h: In instantiation of ‘class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >’:/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:48:34: required from ‘class Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >’/usr/include/eigen3/Eigen/src/Core/Product.h:151:7: required from ‘class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>’/usr/include/eigen3/Eigen/src/Core/Product.h:183:7: required from ‘class Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>’/usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<:matrix>, Eigen::Matrix, 0>’/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:52:65: required from here/usr/include/eigen3/Eigen/src/Core/DenseBase.h:78:25: error: using-declaration for non-member at class scope

using Base::operator*;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:79:25: error: using-declaration for non-member at class scope

using Base::operator/;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:80:17: error: using-declaration for non-member at class scope

using Base::derived;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:81:17: error: using-declaration for non-member at class scope

using Base::const_cast_derived;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:82:17: error: using-declaration for non-member at class scope

using Base::rows;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:83:17: error: using-declaration for non-member at class scope

using Base::cols;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:84:17: error: using-declaration for non-member at class scope

using Base::size;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:85:17: error: using-declaration for non-member at class scope

using Base::rowIndexByOuterInner;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:86:17: error: using-declaration for non-member at class scope

using Base::colIndexByOuterInner;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:87:17: error: using-declaration for non-member at class scope

using Base::coeff;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:88:17: error: using-declaration for non-member at class scope

using Base::coeffByOuterInner;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:89:26: error: using-declaration for non-member at class scope

using Base::operator();^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:90:26: error: using-declaration for non-member at class scope

using Base::operator[];^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:91:17: error: using-declaration for non-member at class scope

using Base::x;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:92:17: error: using-declaration for non-member at class scope

using Base::y;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:93:17: error: using-declaration for non-member at class scope

using Base::z;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:94:17: error: using-declaration for non-member at class scope

using Base::w;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:95:17: error: using-declaration for non-member at class scope

using Base::stride;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:96:17: error: using-declaration for non-member at class scope

using Base::innerStride;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:97:17: error: using-declaration for non-member at class scope

using Base::outerStride;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:98:17: error: using-declaration for non-member at class scope

using Base::rowStride;^

/usr/include/eigen3/Eigen/src/Core/DenseBase.h:99:17: error: using-declaration for non-member at class scope

using Base::colStride;^Infile included from /usr/include/eigen3/Eigen/Core:345:0,

from/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:5:/usr/include/eigen3/Eigen/src/Core/MatrixBase.h: In instantiation of ‘class Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >’:/usr/include/eigen3/Eigen/src/Core/Product.h:151:7: required from ‘class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>’/usr/include/eigen3/Eigen/src/Core/Product.h:183:7: required from ‘class Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>’/usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<:matrix>, Eigen::Matrix, 0>’/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:52:65: required from here/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:70:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::derived’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::derived;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:71:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::const_cast_derived’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::const_cast_derived;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:72:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::rows’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::rows;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:73:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::cols’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::cols;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:74:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::size’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::size;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:75:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::coeff’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::coeff;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:76:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::coeffRef’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::coeffRef;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:78:17: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::eval’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::eval;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:81:25: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::operator*=’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::operator*=;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:82:25: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::operator/=’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::operator/=;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:83:25: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::operator*’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::operator*;^

/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:84:25: error: no members matching ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}::operator/’ in ‘Eigen::MatrixBase<:product>, Eigen::Matrix, 0> >::Base {aka class Eigen::DenseBase<:product>, Eigen::Matrix, 0> >}’

using Base::operator/;^Infile included from /usr/include/eigen3/Eigen/Core:62:0,

from/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:5:/usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘class Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>’:/usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<:matrix>, Eigen::Matrix, 0>’/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:52:65: required from here/usr/include/eigen3/Eigen/src/Core/util/Macros.h:790:15: error: no members matching ‘Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>::Base {aka Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}::derived’ in ‘Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>::Base {aka class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}’

using Base::derived;^

/usr/include/eigen3/Eigen/src/Core/util/Macros.h:796:3: note: inexpansion of macro ‘EIGEN_GENERIC_PUBLIC_INTERFACE’

EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)^

/usr/include/eigen3/Eigen/src/Core/Product.h:191:5: note: inexpansion of macro ‘EIGEN_DENSE_PUBLIC_INTERFACE’

EIGEN_DENSE_PUBLIC_INTERFACE(Derived)^

/usr/include/eigen3/Eigen/src/Core/util/Macros.h:791:15: error: no members matching ‘Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>::Base {aka Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}::const_cast_derived’ in ‘Eigen::ProductImpl<:matrix>, Eigen::Matrix, 0, Eigen::Dense>::Base {aka class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}’

using Base::const_cast_derived;^

/usr/include/eigen3/Eigen/src/Core/util/Macros.h:796:3: note: inexpansion of macro ‘EIGEN_GENERIC_PUBLIC_INTERFACE’

EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)^

/usr/include/eigen3/Eigen/src/Core/Product.h:191:5: note: inexpansion of macro ‘EIGEN_DENSE_PUBLIC_INTERFACE’

EIGEN_DENSE_PUBLIC_INTERFACE(Derived)^

/usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘class Eigen::Product<:matrix>, Eigen::Matrix, 0>’:/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:52:65: required from here/usr/include/eigen3/Eigen/src/Core/util/Macros.h:790:15: error: no members matching ‘Eigen::Product<:matrix>, Eigen::Matrix, 0>::Base {aka Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}::derived’ in ‘Eigen::Product<:matrix>, Eigen::Matrix, 0>::Base {aka class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}’

using Base::derived;^

/usr/include/eigen3/Eigen/src/Core/Product.h:122:5: note: inexpansion of macro ‘EIGEN_GENERIC_PUBLIC_INTERFACE’

EIGEN_GENERIC_PUBLIC_INTERFACE(Product)^

/usr/include/eigen3/Eigen/src/Core/util/Macros.h:791:15: error: no members matching ‘Eigen::Product<:matrix>, Eigen::Matrix, 0>::Base {aka Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}::const_cast_derived’ in ‘Eigen::Product<:matrix>, Eigen::Matrix, 0>::Base {aka class Eigen::internal::dense_product_base<:matrix>, Eigen::Matrix, 0, 3>}’

using Base::const_cast_derived;^

/usr/include/eigen3/Eigen/src/Core/Product.h:122:5: note: inexpansion of macro ‘EIGEN_GENERIC_PUBLIC_INTERFACE’

EIGEN_GENERIC_PUBLIC_INTERFACE(Product)^

/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp: In function ‘int main(int, char**)’:/home/wy/workdir/slambook/ch3/useEigen/eigenMatrix.cpp:52:63: error: conversion from ‘const Eigen::Product<:matrix>, Eigen::Matrix, 0>’ to non-scalar type ‘Eigen::Matrix’ requested

Eigen::Matrix result_wrong_type = matrix_23 *v_3d;^CMakeFiles/eigenMatrix.dir/build.make:62: recipe for target ‘CMakeFiles/eigenMatrix.dir/eigenMatrix.cpp.o‘failedmake[2]: *** [CMakeFiles/eigenMatrix.dir/eigenMatrix.cpp.o] Error 1CMakeFiles/Makefile2:67: recipe for target ‘CMakeFiles/eigenMatrix.dir/all‘failedmake[1]: *** [CMakeFiles/eigenMatrix.dir/all] Error 2Makefile:83: recipe for target ‘all‘failedmake: *** [all] Error 2

*** Failure: Exit code 2 ***

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值