bayesian-object-tracking / dbot_ros

ROS package of Depth-Based Bayesian Object Tracking
GNU General Public License v2.0
57 stars 23 forks source link

Eigen errors when compiling #5

Closed JCase536 closed 6 years ago

JCase536 commented 6 years ago

I was following the README.md Compiling section and this command threw Eigen errors: $ catkin_make -DCMAKE_BUILD_TYPE=Release -DDBOT_BUILD_GPU=On

There were too many errors to show, so I will just show a snippet of them (I apologize for the formatting!): In file included from /usr/include/eigen3/Eigen/Core:349:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/jon/projects/tracking/src/dbot/source/dbot/tracker/tracker.h:22, from /home/jon/projects/tracking/src/dbot/source/dbot/tracker/tracker.cpp:15: /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h: In instantiation of ‘struct Eigen::internal::evaluator<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6> >’: /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h:697:8: required from ‘struct Eigen::internal::evaluator<Eigen::Block<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, 3, 1, false> >’ /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h:312:102: required from ‘struct Eigen::internal::plain_object_eval<Eigen::Block<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, 3, 1, false>, Eigen::Dense>’ /usr/include/eigen3/Eigen/src/Core/Dot.h:116:59: required from ‘const PlainObject Eigen::MatrixBase<Derived>::normalized() const [with Derived = Eigen::Block<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, 3, 1, false>; Eigen::MatrixBase<Derived>::PlainObject = Eigen::Matrix<double, 3, 1>]’ /home/jon/projects/tracking/src/dbot/source/dbot/pose/euler_vector.h:57:36: required from ‘dbot::EulerBase<Base>::Axis dbot::EulerBase<Base>::axis() const [with Base = Eigen::VectorBlock<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, 3>; dbot::EulerBase<Base>::Axis = Eigen::Matrix<double, 3, 1>; typename MatrixType::Scalar = double]’ /home/jon/projects/tracking/src/dbot/source/dbot/pose/euler_vector.h:65:74: required from ‘dbot::EulerBase<Base>::AngleAxis dbot::EulerBase<Base>::angle_axis() const [with Base = Eigen::VectorBlock<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, 3>; dbot::EulerBase<Base>::AngleAxis = Eigen::AngleAxis<double>; typename Base::Scalar = double]’ /home/jon/projects/tracking/src/dbot/source/dbot/pose/euler_vector.h:66:73: required from ‘dbot::EulerBase<Base>::Quaternion dbot::EulerBase<Base>::quaternion() const [with Base = Eigen::VectorBlock<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, 3>; dbot::EulerBase<Base>::Quaternion = Eigen::Quaternion<double>; typename Base::Scalar = double]’ /home/jon/projects/tracking/src/dbot/source/dbot/tracker/tracker.cpp:53:53: required from here /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h:81:8: error: invalid use of incomplete type ‘struct Eigen::internal::unary_evaluator<Eigen::VectorBlock<Eigen::VectorBlock<Eigen::Matrix<double, -1, 1>, 12>, 6>, Eigen::internal::IndexBased, double>’ struct evaluator : public unary_evaluator<T>

I was under the impression that installing ROS Kinetic would automatically install Eigen as a dependency. Just in case, I checked and found some Eigen files set up in /usr/include/. I also tried the same command except without GPU support enabled. Any ideas as to what would throw these errors? Thanks!