uzh-rpg / rpg_svo_pro_open

GNU General Public License v3.0
1.35k stars 381 forks source link

svo_ros compilatoin failed: variable templates only available with -std=c++14 or -std=gnu++14 #20

Closed mzahana closed 2 years ago

mzahana commented 2 years ago

Hi.

I am trying to compile svo_ros inside a docker container on a Jetson Xavier NX, but I am getting the following error

Errors << svo_ros:make /root/catkin_ws/logs/svo_ros/build.make.000.log         
In file included from /root/catkin_ws/src/rpg_svo_pro_open/svo_ros/include/svo_ros/visualizer.h:23:0,
                 from /root/catkin_ws/src/rpg_svo_pro_open/svo_ros/src/visualizer.cpp:6:
/opt/ros/melodic/include/pcl_ros/point_cloud.h:303:27: error: variable templates only available with -std=c++14 or -std=gnu++14 [-Werror]
     constexpr static bool pcl_uses_boost = true;
                           ^~~~~~~~~~~~~~
In file included from /root/catkin_ws/src/rpg_svo_pro_open/svo_ros/include/svo_ros/visualizer.h:23:0,
                 from /root/catkin_ws/src/rpg_svo_pro_open/svo_ros/src/svo_interface.cpp:6:
/opt/ros/melodic/include/pcl_ros/point_cloud.h:303:27: error: variable templates only available with -std=c++14 or -std=gnu++14 [-Werror]
     constexpr static bool pcl_uses_boost = true;
                           ^~~~~~~~~~~~~~
In file included from /root/catkin_ws/src/rpg_svo_pro_open/svo_ceres_backend/include/svo/ceres_backend_publisher.hpp:10:0,
                 from /root/catkin_ws/src/rpg_svo_pro_open/svo_ceres_backend/include/svo/ceres_backend_interface.hpp:11,
                 from /root/catkin_ws/src/rpg_svo_pro_open/svo_ros/include/svo_ros/ceres_backend_factory.h:5,
                 from /root/catkin_ws/src/rpg_svo_pro_open/svo_ros/src/ceres_backend_factory.cpp:1:
/opt/ros/melodic/include/pcl_ros/point_cloud.h:303:27: error: variable templates only available with -std=c++14 or -std=gnu++14 [-Werror]
     constexpr static bool pcl_uses_boost = true;
                           ^~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/svo_ros.dir/src/ceres_backend_factory.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/svo_ros.dir/src/visualizer.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/svo_ros.dir/src/svo_interface.cpp.o] Error 1

make[1]: *** [CMakeFiles/svo_ros.dir/all] Error 2
make: *** [all] Error 2
cd /root/catkin_ws/build/svo_ros; catkin build --get-env svo_ros | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -

Any idea on what could be the problem ?

Using Ubuntu 18 + ROS Melodic,cmake version 3.10.2, g++ (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 Thanks in advance.

mzahana commented 2 years ago

I upgraded CMake from 3.10 to 3.21.4 and it fixed it for me.