参考博客:https://www.cnblogs.com/wongyi/p/8734346.html
1. 数据类型报错
/home/wy/workdir/slambook/ch3/useEigen/build> make -j2 Scanning dependencies of target eigenMatrix [ 50%] Building CXX object CMakeFiles/eigenMatrix.dir/eigenMatrix.cpp.o In file 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<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, Eigen::DenseShape, Eigen::DenseShape>’: /usr/include/eigen3/Eigen/src/Core/Product.h:78:73: required from ‘struct Eigen::internal::traits<Eigen::Product<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0> >’ /usr/include/eigen3/Eigen/src/Core/Product.h:151:7: required from ‘class Eigen::internal::dense_product_base<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0, 3>’ /usr/include/eigen3/Eigen/src/Core/Product.h:183:7: required from ‘class Eigen::ProductImpl<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0, Eigen::Dense>’ /usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 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<float, double>’ typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar; ^ In file 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<Eigen::Product<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0> >’: /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:48:34: required from ‘class Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0> >’ /usr/include/eigen3/Eigen/src/Core/Product.h:151:7: required from ‘class Eigen::internal::dense_product_base<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0, 3>’ /usr/include/eigen3/Eigen/src/Core/Product.h:183:7: required from ‘class Eigen::ProductImpl<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 0, Eigen::Dense>’ /usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<Eigen::Matrix<float, 2, 3>, Eigen::Matrix<double, 3, 1>, 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-decla