Ошибка сборки: зависимость пакета ROS от eigen3 - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь создать пакет ROS, который зависит от tf2_sensor_msgs. tf2_sensor_msgs зависит от Eigen3. Eigen3 доступен в / usr / include / eigen3. CMakeLists.txt в порядке, пакет создается на другой машине.

Некоторая информация о системе:

  • ROS Kineti c
  • pkg-config --modversion eigen3 выходы " 3.3.7 "
  • ubuntu 16.04

Я получаю много таких ошибок при запуске catkin_make:

In file included from /usr/include/eigen3/Eigen/SparseCore:63:0,
                 from /usr/include/eigen3/Eigen/Sparse:26,
                 from /usr/include/eigen3/Eigen/Eigen:2,
                 from /opt/ros/kinetic/include/tf2_sensor_msgs/tf2_sensor_msgs.h:36,
                 from /home/<path_to_file>/<source_file>.cpp:11:
/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h:17:93: error: ‘RealScalar’ does not name a type
 bool SparseMatrixBase<Derived>::isApprox(const SparseMatrixBase<OtherDerived>& other, const RealScalar &prec) const
                                                                                             ^~~~~~~~~~
/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h:17:111: error: invalid use of incomplete type ‘class Eigen::SparseMatrixBase<Derived>’
 bool SparseMatrixBase<Derived>::isApprox(const SparseMatrixBase<OtherDerived>& other, const RealScalar &prec) const

In file included from /usr/include/eigen3/Eigen/SparseCore:59:0,
                 from /usr/include/eigen3/Eigen/Sparse:26,
                 from /usr/include/eigen3/Eigen/Eigen:2,
                 from /opt/ros/kinetic/include/tf2_sensor_msgs/tf2_sensor_msgs.h:36,
                 from /home/<path_to_file>/<source_file>.cpp:11:
/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h:232:155: error: wrong number of template arguments (1, should be 2)
   static void run(DynamicSparseMatrix<DestScalar,ColMajor,StorageIndex>& dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar> &/*func*/)

Что может к этому привести?

...