ros-industrial-attic / fermi

Google Summer of Code Project: Cartesian Path Planner MoveIt Plug-in
Apache License 2.0
41 stars 33 forks source link

Cannot build with YAML 0.5 #29

Closed VictorLamoine closed 9 years ago

VictorLamoine commented 9 years ago

I use Ubuntu 14.04 I have ros-indigo-desktop (1.1.3-0trusty-20141202-2012-+0000) installed I'm trying to build the indigo-devel branch of this repository

I get these errors which seems YAML / Qt related:

[ 90%] Built target robot_state
/home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp: In member function ‘void moveit_cartesian_plan_plugin::widgets::PathPlanningWidget::loadPointsFromFile()’:
/home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp:429:16: error: ‘class YAML::Parser’ has no member named ‘GetNextDocument’
         parser.GetNextDocument(doc);
                ^
/home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp:442:26: error: no match for ‘operator>>’ (operand types are ‘YAML::Node’ and ‘std::string {aka std::basic_string<char>}’)
           doc[i]["name"] >> name;
                          ^
/home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp:442:26: note: candidates are:
In file included from /usr/include/qt4/QtGui/QSplitter:1:0,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/include/moveit_cartesian_plan_plugin/widgets/path_planning_widget.h:25,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp:1:
/usr/include/qt4/QtGui/qsplitter.h:153:15: note: QTextStream& operator>>(QTextStream&, QSplitter&)
 Q_GUI_EXPORT QTextStream& operator>>(QTextStream&, QSplitter&);
               ^
/usr/include/qt4/QtGui/qsplitter.h:153:15: note:   no known conversion for argument 1 from ‘YAML::Node’ to ‘QTextStream&’
In file included from /usr/include/qt4/QtGui/QStandardItemModel:1:0,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/include/moveit_cartesian_plan_plugin/widgets/path_planning_widget.h:23,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp:1:
/usr/include/qt4/QtGui/qstandarditemmodel.h:446:15: note: QDataStream& operator>>(QDataStream&, QStandardItem&)
 Q_GUI_EXPORT QDataStream &operator>>(QDataStream &in, QStandardItem &item);
               ^
/usr/include/qt4/QtGui/qstandarditemmodel.h:446:15: note:   no known conversion for argument 1 from ‘YAML::Node’ to ‘QDataStream&’
In file included from /usr/include/qt4/QtCore/qdebug.h:50:0,
                 from /usr/include/qt4/QtCore/qtconcurrentresultstore.h:50,
                 from /usr/include/qt4/QtCore/qfutureinterface.h:52,
                 from /usr/include/qt4/QtCore/qfuture.h:49,
                 from /usr/include/qt4/QtCore/qtconcurrentrunbase.h:49,
                 from /usr/include/qt4/QtCore/qtconcurrentrun.h:50,
                 from /usr/include/qt4/QtCore/QtConcurrentRun:1,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/include/moveit_cartesian_plan_plugin/generate_cartesian_path.h:14,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/include/moveit_cartesian_plan_plugin/add_way_point.h:32,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/include/moveit_cartesian_plan_plugin/widgets/path_planning_widget.h:16,
                 from /home/dell/Copy/ros_fanuc_ws/src/fermi/moveit_cartesian_plan_plugin/src/widgets/path_planning_widget.cpp:1:
/usr/include/qt4/QtCore/qtextstream.h:288:21: note: QTextStream& operator>>(QTextStream&, QTextStreamFunction)
 inline QTextStream &operator>>(QTextStream &s, QTextStreamFunction f)
                     ^

I have these package installed:

$ dpkg -l | grep yaml
ii  libyaml-0-2:amd64                                           0.1.4-3ubuntu3                                      amd64        Fast YAML 1.1 parser and emitter library
ii  libyaml-cpp-dev                                             0.5.1-1                                             amd64        YAML parser and emitter for C++ - development files
ii  libyaml-cpp0.3:amd64                                        0.3.0-1.1                                           amd64        YAML parser and emitter for C++ (0.3 series)
ii  libyaml-cpp0.5:amd64                                        0.5.1-1                                             amd64        YAML parser and emitter for C++
ii  libyaml-tiny-perl                                           1.56-1                                              all          Perl module for reading and writing YAML files
ii  python-yaml                                                 3.10-4build4                                        amd64        YAML parser and emitter for Python

Do you know what's wrong? It looks like you're using YAML 0.3 API instead of 0.5

gavanderhoorn commented 9 years ago

See also ros-industrial/industrial_calibration#30. Identical issue.

rkojcev commented 9 years ago

@VictorLamoine unfortunately under Ubuntu 14.04 the yaml parser used in the versions of hydro has different parsing structure. I have managed to fix this check out here. Please note that this is not very well tested version like the hydro one and is still under development... Sorry I didn't have much time these 2 months to wrap it up. You can try it :)

rkojcev commented 9 years ago

Once I will have the final version I will make a pull request to this repository. Sorry for the delay...

VictorLamoine commented 9 years ago

@rkojcev Compilation is fine with your personal branch Thanks for the fast reply

rkojcev commented 9 years ago

No problem, I am glad if I can help. I will try to make pull request to the indigo-devel branch on this repo as soon as possible.

Sorry for the inconvenience...