XidianLemon / calibration_camera_lidar

从autoware分离出来的相机雷达联合标定ros包
296 stars 58 forks source link

在Ubuntu20.04编译出错 #28

Open wangyd-0312 opened 1 year ago

wangyd-0312 commented 1 year ago

我之前在Ubuntu18上成功安装过这个工具箱,但是在20.04上编译出现很多错误,各位大佬请问在20上安装有什么需要修改的地方吗,比如opencv、pcl版本要求等等,我报了很多有关pcl的错误。

/usr/include/pcl-1.10/pcl/point_representation.h:308:7:   required from here
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: error: the value of ‘NrDims’ is not usable in a constant expression
/usr/include/pcl-1.10/pcl/point_representation.h:251:19: note: ‘NrDims’ was not initialized with a constant expression
  251 |         const int NrDims = pcl::traits::datatype<PointDefault, Key>::size;
      |                   ^~~~~~
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: note: in template argument for type ‘int’
  252 |         Helper<Key, FieldT, NrDims>::copyPoint (p1_, p2_, f_idx_);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/pcl-1.10/pcl/point_representation.h: In instantiation of ‘void pcl::DefaultFeatureRepresentation<PointDefault>::NdCopyPointFunctor::operator()() [with Key = pcl::fields::f4; PointDefault = pcl::PPFSignature]’:
/usr/include/pcl-1.10/pcl/for_each_type.h:87:51:   recursively required from ‘static void pcl::for_each_type_impl<false>::execute(F) [with Iterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 1>; LastIterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 5>; F = pcl::DefaultFeatureRepresentation<pcl::PPFSignature>::NdCopyPointFunctor]’
/usr/include/pcl-1.10/pcl/for_each_type.h:87:51:   required from ‘static void pcl::for_each_type_impl<false>::execute(F) [with Iterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 0>; LastIterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 5>; F = pcl::DefaultFeatureRepresentation<pcl::PPFSignature>::NdCopyPointFunctor]’
/usr/include/pcl-1.10/pcl/for_each_type.h:98:92:   required from ‘void pcl::for_each_type(F) [with Sequence = boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>; F = pcl::DefaultFeatureRepresentation<pcl::PPFSignature>::NdCopyPointFunctor]’
/usr/include/pcl-1.10/pcl/point_representation.h:310:40:   required from ‘void pcl::DefaultFeatureRepresentation<PointDefault>::copyToFloatArray(const PointDefault&, float*) const [with PointDefault = pcl::PPFSignature]’
/usr/include/pcl-1.10/pcl/point_representation.h:308:7:   required from here
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: error: the value of ‘NrDims’ is not usable in a constant expression
/usr/include/pcl-1.10/pcl/point_representation.h:251:19: note: ‘NrDims’ was not initialized with a constant expression
  251 |         const int NrDims = pcl::traits::datatype<PointDefault, Key>::size;
      |                   ^~~~~~
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: note: in template argument for type ‘int’
  252 |         Helper<Key, FieldT, NrDims>::copyPoint (p1_, p2_, f_idx_);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/pcl-1.10/pcl/point_representation.h: In instantiation of ‘void pcl::DefaultFeatureRepresentation<PointDefault>::NdCopyPointFunctor::operator()() [with Key = pcl::fields::alpha_m; PointDefault = pcl::PPFSignature]’:
/usr/include/pcl-1.10/pcl/for_each_type.h:87:51:   recursively required from ‘static void pcl::for_each_type_impl<false>::execute(F) [with Iterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 1>; LastIterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 5>; F = pcl::DefaultFeatureRepresentation<pcl::PPFSignature>::NdCopyPointFunctor]’
/usr/include/pcl-1.10/pcl/for_each_type.h:87:51:   required from ‘static void pcl::for_each_type_impl<false>::execute(F) [with Iterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 0>; LastIterator = boost::mpl::v_iter<boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>, 5>; F = pcl::DefaultFeatureRepresentation<pcl::PPFSignature>::NdCopyPointFunctor]’
/usr/include/pcl-1.10/pcl/for_each_type.h:98:92:   required from ‘void pcl::for_each_type(F) [with Sequence = boost::mpl::vector<pcl::fields::f1, pcl::fields::f2, pcl::fields::f3, pcl::fields::f4, pcl::fields::alpha_m>; F = pcl::DefaultFeatureRepresentation<pcl::PPFSignature>::NdCopyPointFunctor]’
/usr/include/pcl-1.10/pcl/point_representation.h:310:40:   required from ‘void pcl::DefaultFeatureRepresentation<PointDefault>::copyToFloatArray(const PointDefault&, float*) const [with PointDefault = pcl::PPFSignature]’
/usr/include/pcl-1.10/pcl/point_representation.h:308:7:   required from here
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: error: the value of ‘NrDims’ is not usable in a constant expression
/usr/include/pcl-1.10/pcl/point_representation.h:251:19: note: ‘NrDims’ was not initialized with a constant expression
  251 |         const int NrDims = pcl::traits::datatype<PointDefault, Key>::size;
      |                   ^~~~~~
/usr/include/pcl-1.10/pcl/point_representation.h:252:48: note: in template argument for type ‘int’
  252 |         Helper<Key, FieldT, NrDims>::copyPoint (p1_, p2_, f_idx_);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
make[2]: *** [calibration_camera_lidar/ls_calibration/calibration_camera_lidar/CMakeFiles/calibrationtoolkit.dir/build.make:76:calibration_camera_lidar/ls_calibration/calibration_camera_lidar/CMakeFiles/calibrationtoolkit.dir/CalibrationToolkit/calibrationtoolkit.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:5278:calibration_camera_lidar/ls_calibration/calibration_camera_lidar/CMakeFiles/calibrationtoolkit.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j20 -l20" failed
kankanjiuzou123 commented 1 year ago

我也是,你解决了么?

kankanjiuzou123 commented 1 year ago

老哥,看到麻烦回复下,我20.04遇到了同样的问题

imurfutur3 commented 1 year ago

我看你用了pcl1.10,估计要用c++ 17编译吧,改下cmakelist