CoppeliaRobotics / simOMPL

OMPL (Open Motion Planning Library) plugin for CoppeliaSim
Other
16 stars 4 forks source link

How to complies v-repExtOMPL in ubuntu 18.04 #6

Closed Gloriabhsfer closed 5 years ago

Gloriabhsfer commented 5 years ago

Hi: I want to modify the RRT algorithm in OMPL so I searched online and want to complies vrepExtOMPL. I followed the steps in this And I have finished building the OMPL Plugin for V_REP step But when I compile the plugin code to build the plugin with cmake . cmake --build . I get this error

gloria@gloria-XPS-13-9370:~/Downloads/V-REP_PRO_EDU_V3_6_1_Ubuntu18_04/programming/v_repExtOMPL$ cmake --build .

[16%] Building CXX object CMakeFiles/v_repExtOMPL.dir/plugin.cpp.o
In file included from /usr/local/include/ompl/geometric/planners/prm/SPARStwo.h:44:0,
                 from /home/gloria/Downloads/V-REP_PRO_EDU_V3_6_1_Ubuntu18_04/programming/v_repExtOMPL/plugin.cpp:43:
/usr/local/include/ompl/util/Hash.h: In member function ‘std::hash<std::pair<_T1, _T2> >::result_type std::hash<std::pair<_T1, _T2> >::operator()(const argument_type&) const’:
/usr/local/include/ompl/util/Hash.h:64:44: error: remove_cv_t’ is not a member of ‘std’
             result_type h = std::hash<std::remove_cv_t<U>>()(p.first);
                                            ^~~~~~~~~~~
/usr/local/include/ompl/util/Hash.h:64:44: note: suggested alternative: ‘remove_cv’
             result_type h = std::hash<std::remove_cv_t<U>>()(p.first);
                                            ^~~~~~~~~~~
                                            remove_cv
/usr/local/include/ompl/util/Hash.h:64:44: error: remove_cv_t’ is not a member of ‘std/usr/local/include/ompl/util/Hash.h:64:44: note: suggested alternative: ‘remove_cv’
             result_type h = std::hash<std::remove_cv_t<U>>()(p.first);
                                            ^~~~~~~~~~~
                                            remove_cv
/usr/local/include/ompl/util/Hash.h:64:56: error: template argument 1 is invalid
             result_type h = std::hash<std::remove_cv_t<U>>()(p.first);
                                                        ^
/usr/local/include/ompl/util/Hash.h:64:60: error: expected primary-expression before ‘)’ token
             result_type h = std::hash<std::remove_cv_t<U>>()(p.first);
                                                            ^
CMakeFiles/v_repExtOMPL.dir/build.make:72: recipe for target 'CMakeFiles/v_repExtOMPL.dir/plugin.cpp.o' failed
make[2]: *** [CMakeFiles/v_repExtOMPL.dir/plugin.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/v_repExtOMPL.dir/all' failed
make[1]: *** [CMakeFiles/v_repExtOMPL.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

It seems something wrong with my C++ complies But I don't know how do fix that. My gcc verison is gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)

Best, Gloria

Gloriabhsfer commented 5 years ago

Hi:

The remove_cv_t is depends on c++14 so you need to modify CMakeList.txt and change the CXX version to 14 (or higher)

Best, Gloria