interactive_slam icon indicating copy to clipboard operation
interactive_slam copied to clipboard

Ubuntu 20.04 --> build error "catkin_make -DCMAKE_BUILD_TYPE=Release"

Open mathewsarbuckle opened this issue 1 year ago • 2 comments

The actual error is extremely long (can't fit all of it here) but it mostly tied with pcl. Any assistance would be greatly appreicated!

beginning of error: [ 15%] Built target nav_msgs_generate_messages_eus [ 16%] Building CXX object odometry_saver/CMakeFiles/odometry_saver.dir/src/odometry_saver.cpp.o In file included from /usr/include/pcl-1.10/pcl/pcl_macros.h:77, from /usr/include/pcl-1.10/pcl/PCLHeader.h:10, from /usr/include/pcl-1.10/pcl/point_cloud.h:47, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:5, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/pcl_config.h:7:4: error: #error PCL requires C++14 or above 7 | #error PCL requires C++14 or above | ^~~~~ In file included from /usr/include/pcl-1.10/pcl/console/print.h:44, from /usr/include/pcl-1.10/pcl/conversions.h:53, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:8, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/pcl_config.h:7:4: error: #error PCL requires C++14 or above 7 | #error PCL requires C++14 or above | ^~~~~ In file included from /opt/ros/noetic/include/pcl_ros/point_cloud.h:284, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/pcl_config.h:7:4: error: #error PCL requires C++14 or above 7 | #error PCL requires C++14 or above | ^~~~~ ^Cmake[2]: *** [odometry_saver/CMakeFiles/odometry_saver.dir/build.make:63: odometry_saver/CMakeFiles/odometry_saver.dir/src/odometry_saver.cpp.o] Interrupt make[1]: *** [CMakeFiles/Makefile2:3004: odometry_saver/CMakeFiles/odometry_saver.dir/all] Interrupt make: *** [Makefile:141: all] Interrupt Traceback (most recent call last): File "/opt/ros/noetic/bin/catkin_make", line 306, in sys.exit(main()) File "/opt/ros/noetic/bin/catkin_make", line 249, in main run_command(cmd, make_path) File "/opt/ros/noetic/lib/python3/dist-packages/catkin/builder.py", line 241, in run_command proc.wait() File "/usr/lib/python3.8/subprocess.py", line 1083, in wait return self._wait(timeout=timeout) File "/usr/lib/python3.8/subprocess.py", line 1806, in _wait (pid, sts) = self._try_wait(0) File "/usr/lib/python3.8/subprocess.py", line 1764, in _try_wait (pid, sts) = os.waitpid(self.pid, wait_flags)

........................................................................................................

end of error: /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:80:54: error: ‘enable_if_t’ is not a member of ‘std’; did you mean ‘enable_if’? 80 | struct CopyPointHelper<PointInT, PointOutT, std::enable_if_t<std::is_same<PointInT, PointOutT>::value>> | ^~~~~~~~~~~ | enable_if /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:80:101: error: type/value mismatch at argument 3 in template parameter list for ‘template<class PointInT, class PointOutT, class Enable> struct pcl::detail::CopyPointHelper’ 80 | ntHelper<PointInT, PointOutT, std::enable_if_t<std::is_same<PointInT, PointOutT>::value>> | ^~~~~

/usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:80:101: note: expected a type, got ‘( < std::is_same< , >::value)’ /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:80:106: error: expected unqualified-id before ‘>’ token 80 | per<PointInT, PointOutT, std::enable_if_t<std::is_same<PointInT, PointOutT>::value>> | ^~

/usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:90:33: error: ‘enable_if_t’ is not a member of ‘std’; did you mean ‘enable_if’? 90 | std::enable_if_t<boost::mpl::and_<boost::mpl::not_<std::is_same<PointInT, PointOutT>>, | ^~~~~~~~~~~ | enable_if /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:90:33: error: ‘enable_if_t’ is not a member of ‘std’; did you mean ‘enable_if’? 90 | std::enable_if_t<boost::mpl::and_<boost::mpl::not_<std::is_same<PointInT, PointOutT>>, | ^~~~~~~~~~~ | enable_if In file included from /usr/include/pcl-1.10/pcl/common/copy_point.h:58, from /usr/include/pcl-1.10/pcl/common/impl/io.hpp:45, from /usr/include/pcl-1.10/pcl/common/io.h:586, from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:96:152: error: type/value mismatch at argument 3 in template parameter list for ‘template<class PointInT, class PointOutT, class Enable> struct pcl::detail::CopyPointHelper’ 96 | pcl::traits::has_field<PointOutT, pcl::fields::rgba>>>>::value>> | ^~~~~

/usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:96:152: note: expected a type, got ‘( < boost::mpl::and_<boost::mpl::not_<std::is_same<PointInT, PointOutT> >, boost::mpl::or_<boost::mpl::not_<pcl::traits::has_color<PointInT> >, boost::mpl::not_<pcl::traits::has_color<PointOutT> >, boost::mpl::and_<pcl::traits::has_field<PointInT, pcl::fields::rgb>, pcl::traits::has_field<PointOutT, pcl::fields::rgb> >, boost::mpl::and_<pcl::traits::has_field<PointInT, pcl::fields::rgba>, pcl::traits::has_field<PointOutT, pcl::fields::rgba> > > >::value)’ /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:96:157: error: expected unqualified-id before ‘>’ token 96 | pcl::traits::has_field<PointOutT, pcl::fields::rgba>>>>::value>> | ^~

/usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:109:33: error: ‘enable_if_t’ is not a member of ‘std’; did you mean ‘enable_if’? 109 | std::enable_if_t<boost::mpl::and_<boost::mpl::not_<std::is_same<PointInT, PointOutT>>, | ^~~~~~~~~~~ | enable_if /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:109:33: error: ‘enable_if_t’ is not a member of ‘std’; did you mean ‘enable_if’? 109 | std::enable_if_t<boost::mpl::and_<boost::mpl::not_<std::is_same<PointInT, PointOutT>>, | ^~~~~~~~~~~ | enable_if /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:113:134: error: type/value mismatch at argument 3 in template parameter list for ‘template<class PointInT, class PointOutT, class Enable> struct pcl::detail::CopyPointHelper’ 113 | pcl::traits::has_field<PointOutT, pcl::fields::rgb>>>>::value>> | ^~~~~

/usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:113:134: note: expected a type, got ‘( < boost::mpl::and_<boost::mpl::not_<std::is_same<PointInT, PointOutT> >, boost::mpl::or_<boost::mpl::and_<pcl::traits::has_field<PointInT, pcl::fields::rgb>, pcl::traits::has_field<PointOutT, pcl::fields::rgba> >, boost::mpl::and_<pcl::traits::has_field<PointInT, pcl::fields::rgba>, pcl::traits::has_field<PointOutT, pcl::fields::rgb> > > >::value)’ /usr/include/pcl-1.10/pcl/common/impl/copy_point.hpp:113:139: error: expected unqualified-id before ‘>’ token 113 | pcl::traits::has_field<PointOutT, pcl::fields::rgb>>>>::value>> | ^~

In file included from /usr/include/pcl-1.10/pcl/common/io.h:586, from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/common/impl/io.hpp: In function ‘int pcl::getFieldIndex(const string&, const std::vectorpcl::PCLPointField&)’: /usr/include/pcl-1.10/pcl/common/impl/io.hpp:73:27: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 73 | [&field_name](const auto& field) { return field.name == field_name; }); | ^~~~ /usr/include/pcl-1.10/pcl/common/impl/io.hpp: In lambda function: /usr/include/pcl-1.10/pcl/common/impl/io.hpp:73:55: error: request for member ‘name’ in ‘field’, which is of non-class type ‘const int’ 73 | [&field_name](const auto& field) { return field.name == field_name; }); | ^~~~ /usr/include/pcl-1.10/pcl/common/impl/io.hpp: In function ‘void pcl::copyPointCloud(const pcl::PointCloud<PointT>&, const std::vectorpcl::PointIndices&, pcl::PointCloud<PointOutT>&)’: /usr/include/pcl-1.10/pcl/common/impl/io.hpp:272:16: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 272 | [](const auto& acc, const auto& index) { return index.indices.size() + acc; }); | ^~~~ /usr/include/pcl-1.10/pcl/common/impl/io.hpp:272:33: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 272 | [](const auto& acc, const auto& index) { return index.indices.size() + acc; }); | ^~~~ /usr/include/pcl-1.10/pcl/common/impl/io.hpp: In lambda function: /usr/include/pcl-1.10/pcl/common/impl/io.hpp:272:61: error: request for member ‘indices’ in ‘index’, which is of non-class type ‘const int’ 272 | [](const auto& acc, const auto& index) { return index.indices.size() + acc; }); | ^~~~~~~ In file included from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/io/file_io.h: At global scope: /usr/include/pcl-1.10/pcl/io/file_io.h:235:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’? 235 | std::enable_if_t<std::is_floating_point<Type>::value> | ^~~~~~~~~~~ | enable_if In file included from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/io/file_io.h:252:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’? 252 | std::enable_if_t<std::is_integral<Type>::value> | ^~~~~~~~~~~ | enable_if /usr/include/pcl-1.10/pcl/io/file_io.h:266:18: error: expected initializer before ‘<’ token 266 | copyValueStringstd::int8_t (const pcl::PCLPointCloud2 &cloud, | ^ /usr/include/pcl-1.10/pcl/io/file_io.h:280:18: error: expected initializer before ‘<’ token 280 | copyValueStringstd::uint8_t (const pcl::PCLPointCloud2 &cloud, | ^ /usr/include/pcl-1.10/pcl/io/file_io.h:304:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’? 304 | std::enable_if_t<std::is_floating_point<Type>::value, bool> | ^~~~~~~~~~~ | enable_if /usr/include/pcl-1.10/pcl/io/file_io.h:317:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type; did you mean ‘enable_if’? 317 | std::enable_if_t<std::is_integral<Type>::value, bool> | ^~~~~~~~~~~ | enable_if In file included from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /opt/ros/noetic/include/pcl_ros/point_cloud.h:299:27: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’ 299 | constexpr static bool pcl_uses_boost = std::is_same<boost::shared_ptr<T>, | ^~~~~~~~~~~~~~ In file included from /usr/include/c++/9/algorithm:62, from /usr/include/eigen3/Eigen/Core:288, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:5: /usr/include/c++/9/bits/stl_algo.h: In instantiation of ‘_OIter std::transform(_IIter, _IIter, _OIter, _UnaryOperation) [with _IIter = __gnu_cxx::__normal_iterator<const pcl::Vertices*, std::vectorpcl::Vertices >; _OIter = std::back_insert_iterator<std::vectorpcl::Vertices >; _UnaryOperation = pcl::PolygonMesh::concatenate(pcl::PolygonMesh&, const pcl::PolygonMesh&)::<lambda(int)>]’: /usr/include/pcl-1.10/pcl/PolygonMesh.h:55:24: required from here /usr/include/c++/9/bits/stl_algo.h:4343:24: error: no match for call to ‘(pcl::PolygonMesh::concatenate(pcl::PolygonMesh&, const pcl::PolygonMesh&)::<lambda(int)>) (const pcl::Vertices&)’ 4343 | __result = __unary_op(__first); | ~~~~~~~~~~^~~~~~~~~~ In file included from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:67, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/PolygonMesh.h:45:22: note: candidate: ‘pcl::PolygonMesh::concatenate(pcl::PolygonMesh&, const pcl::PolygonMesh&)::<lambda(int)>’ 45 | [point_offset](auto polygon) | ^ /usr/include/pcl-1.10/pcl/PolygonMesh.h:45:22: note: no known conversion for argument 1 from ‘const pcl::Vertices’ to ‘int’ In file included from /usr/include/c++/9/numeric:62, from /usr/include/pcl-1.10/pcl/common/io.h:43, from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/c++/9/bits/stl_numeric.h: In instantiation of ‘_Tp std::accumulate(_InputIterator, _InputIterator, _Tp, _BinaryOperation) [with _InputIterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Tp = std::__cxx11::basic_string; _BinaryOperation = pcl::getFieldsList(const pcl::PCLPointCloud2&)::<lambda(const int&, const int&)>]’: /usr/include/pcl-1.10/pcl/common/io.h:144:82: required from here /usr/include/c++/9/bits/stl_numeric.h:166:22: error: no match for call to ‘(pcl::getFieldsList(const pcl::PCLPointCloud2&)::<lambda(const int&, const int&)>) (std::__cxx11::basic_string&, const pcl::PCLPointField&)’ 166 | __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), __first); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/9/bits/stl_numeric.h:166:22: note: candidate: ‘void ()(const int&, const int&)’ /usr/include/c++/9/bits/stl_numeric.h:166:22: note: candidate expects 3 arguments, 3 provided In file included from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/common/io.h:144:9: note: candidate: ‘pcl::getFieldsList(const pcl::PCLPointCloud2&)::<lambda(const int&, const int&)>’ 144 | [](const auto& acc, const auto& field) { return acc + " " + field.name; }); | ^ /usr/include/pcl-1.10/pcl/common/io.h:144:9: note: no known conversion for argument 1 from ‘std::__cxx11::basic_string’ to ‘const int&’ In file included from /usr/include/c++/9/bits/stl_algobase.h:71, from /usr/include/c++/9/bits/char_traits.h:39, from /usr/include/c++/9/string:40, from /usr/include/c++/9/stdexcept:39, from /usr/include/c++/9/array:39, from /usr/include/c++/9/tuple:39, from /usr/include/c++/9/mutex:38, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:1: /usr/include/c++/9/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_pred<_Predicate>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = pcl::toPCLPointCloud2(const pcl::PCLPointCloud2&, pcl::PCLImage&)::<lambda(const int&)>]’: /usr/include/c++/9/bits/stl_algo.h:120:14: required from ‘_RandomAccessIterator std::__find_if(_RandomAccessIterator, _RandomAccessIterator, _Predicate, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = __gnu_cxx::__ops::_Iter_pred<pcl::toPCLPointCloud2(const pcl::PCLPointCloud2&, pcl::PCLImage&)::<lambda(const int&)> >]’ /usr/include/c++/9/bits/stl_algo.h:161:23: required from ‘_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = __gnu_cxx::__ops::_Iter_pred<pcl::toPCLPointCloud2(const pcl::PCLPointCloud2&, pcl::PCLImage&)::<lambda(const int&)> >]’ /usr/include/c++/9/bits/stl_algo.h:3969:28: required from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = pcl::toPCLPointCloud2(const pcl::PCLPointCloud2&, pcl::PCLImage&)::<lambda(const int&)>]’ /usr/include/pcl-1.10/pcl/conversions.h:318:93: required from here /usr/include/c++/9/bits/predefined_ops.h:283:11: error: no match for call to ‘(pcl::toPCLPointCloud2(const pcl::PCLPointCloud2&, pcl::PCLImage&)::<lambda(const int&)>) (const pcl::PCLPointField&)’ 283 | { return bool(_M_pred(__it)); } | ^~~~~~~~~~~~~~~~~~~~ /usr/include/c++/9/bits/predefined_ops.h:283:11: note: candidate: ‘void ()(const int&)’ /usr/include/c++/9/bits/predefined_ops.h:283:11: note: candidate expects 2 arguments, 2 provided In file included from /opt/ros/noetic/include/pcl_ros/point_cloud.h:8, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/conversions.h:317:28: note: candidate: ‘pcl::toPCLPointCloud2(const pcl::PCLPointCloud2&, pcl::PCLImage&)::<lambda(const int&)>’ 317 | const auto predicate = [](const auto& field) { return field.name == "rgb"; }; | ^ /usr/include/pcl-1.10/pcl/conversions.h:317:28: note: no known conversion for argument 1 from ‘const pcl::PCLPointField’ to ‘const int&’ In file included from /usr/include/c++/9/bits/stl_algobase.h:71, from /usr/include/c++/9/bits/char_traits.h:39, from /usr/include/c++/9/string:40, from /usr/include/c++/9/stdexcept:39, from /usr/include/c++/9/array:39, from /usr/include/c++/9/tuple:39, from /usr/include/c++/9/mutex:38, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:1: /usr/include/c++/9/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_pred<_Predicate>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = pcl::getFieldIndex(const pcl::PCLPointCloud2&, const string&)::<lambda(int)>]’: /usr/include/c++/9/bits/stl_algo.h:120:14: required from ‘_RandomAccessIterator std::__find_if(_RandomAccessIterator, _RandomAccessIterator, _Predicate, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = __gnu_cxx::__ops::_Iter_pred<pcl::getFieldIndex(const pcl::PCLPointCloud2&, const string&)::<lambda(int)> >]’ /usr/include/c++/9/bits/stl_algo.h:161:23: required from ‘_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = __gnu_cxx::__ops::_Iter_pred<pcl::getFieldIndex(const pcl::PCLPointCloud2&, const string&)::<lambda(int)> >]’ /usr/include/c++/9/bits/stl_algo.h:3969:28: required from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vectorpcl::PCLPointField >; _Predicate = pcl::getFieldIndex(const pcl::PCLPointCloud2&, const string&)::<lambda(int)>]’ /usr/include/pcl-1.10/pcl/common/io.h:65:77: required from here /usr/include/c++/9/bits/predefined_ops.h:283:11: error: no match for call to ‘(pcl::getFieldIndex(const pcl::PCLPointCloud2&, const string&)::<lambda(int)>) (const pcl::PCLPointField&)’ 283 | { return bool(_M_pred(*__it)); } | ^~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /opt/ros/noetic/include/pcl_conversions/pcl_conversions.h:70, from /opt/ros/noetic/include/pcl_ros/point_cloud.h:9, from /home/mat/catkin_ws/src/odometry_saver/src/odometry_saver.cpp:12: /usr/include/pcl-1.10/pcl/common/io.h:65:9: note: candidate: ‘pcl::getFieldIndex(const pcl::PCLPointCloud2&, const string&)::<lambda(int)>’ 65 | [&field_name](const auto field) { return field.name == field_name; }); | ^ /usr/include/pcl-1.10/pcl/common/io.h:65:9: note: no known conversion for argument 1 from ‘const pcl::PCLPointField’ to ‘int’ make[2]: *** [odometry_saver/CMakeFiles/odometry_saver.dir/build.make:63: odometry_saver/CMakeFiles/odometry_saver.dir/src/odometry_saver.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:3004: odometry_saver/CMakeFiles/odometry_saver.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 Invoking "make -j1 -l1" failed

mathewsarbuckle avatar Aug 03 '24 20:08 mathewsarbuckle

It seems that there are some issues about the C++ version. Can you try adding set(CMAKE_CXX_STANDARD 17) in CMakeLists.txt?

koide3 avatar Aug 05 '24 01:08 koide3

I got past the build error, thank you! I'm running into a new error when I try to launch the application. It has something to do with shader version? Any insight would be greatly appreciated, thanks!

Error: mat@mat-VirtualBox:~/catkin_ws$ rosrun interactive_slam interactive_slam error : failed to compile shader /home/mat/catkin_ws/src/interactive_slam/data/shader/rainbow.vert 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

error : failed to compile shader /home/mat/catkin_ws/src/interactive_slam/data/shader/rainbow.frag 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

error : failed to link program error: linking with uncompiled/unspecialized shadererror: linking with uncompiled/unspecialized shader construct solver: lm_var_cholmod done error : failed to compile shader /home/mat/catkin_ws/src/interactive_slam/data/shader/rainbow.vert 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

error : failed to compile shader /home/mat/catkin_ws/src/interactive_slam/data/shader/rainbow.frag 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

error : failed to link program error: linking with uncompiled/unspecialized shadererror: linking with uncompiled/unspecialized shader

mathewsarbuckle avatar Aug 05 '24 15:08 mathewsarbuckle