0
votes

I'm using ROS Indigo with Arch Linux ARM and i'm trying to install the package ros-indigo-qt-gui-cpp from AUR.

But then pops up the following error:


[ 85%] Compiling generated code for qt_gui_cpp_sip Python bindings...
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp: In member function ‘void sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*)’:
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:183:79: error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*&)’
         qt_gui_cpp::RosPluginlibPluginProvider_ForPlugins::disconnectNotify(a0);
                                                                               ^
In file included from /usr/include/qt/QtCore/qthread.h:43:0,
                 from /usr/include/qt/QtCore/QThread:1,
                 from sipAPIlibqt_gui_cpp_sip.h:14,
                 from siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:436:18: note: candidate: virtual void QObject::disconnectNotify(const QMetaMethod&)
     virtual void disconnectNotify(const QMetaMethod &signal);
                  ^~~~~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:436:18: note:   no known conversion for argument 1 from ‘const char*’ to ‘const QMetaMethod&’
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp: In member function ‘void sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*)’:
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:201:76: error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’
         qt_gui_cpp::RosPluginlibPluginProvider_ForPlugins::connectNotify(a0);
                                                                            ^
In file included from /usr/include/qt/QtCore/qthread.h:43:0,
                 from /usr/include/qt/QtCore/QThread:1,
                 from sipAPIlibqt_gui_cpp_sip.h:14,
                 from siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:435:18: note: candidate: virtual void QObject::connectNotify(const QMetaMethod&)
     virtual void connectNotify(const QMetaMethod &signal);
                  ^~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:435:18: note:   no known conversion for argument 1 from ‘const char*’ to ‘const QMetaMethod&’
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp: In member function ‘void sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::sipProtectVirt_connectNotify(bool, const char*)’:
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:432:47: error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’
     (sipSelfWasArg ? QObject::connectNotify(a0) : connectNotify(a0));
                                               ^
In file included from /usr/include/qt/QtCore/qthread.h:43:0,
                 from /usr/include/qt/QtCore/QThread:1,
                 from sipAPIlibqt_gui_cpp_sip.h:14,
                 from siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:435:18: note: candidate: virtual void QObject::connectNotify(const QMetaMethod&)
     virtual void connectNotify(const QMetaMethod &signal);
                  ^~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:435:18: note:   no known conversion for argument 1 from ‘const char*’ to ‘const QMetaMethod&’
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp: In member function ‘void sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::sipProtectVirt_disconnectNotify(bool, const char*)’:
/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/sip/qt_gui_cpp_sip/siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:437:50: error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*&)’
     (sipSelfWasArg ? QObject::disconnectNotify(a0) : disconnectNotify(a0));
                                                  ^
In file included from /usr/include/qt/QtCore/qthread.h:43:0,
                 from /usr/include/qt/QtCore/QThread:1,
                 from sipAPIlibqt_gui_cpp_sip.h:14,
                 from siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:436:18: note: candidate: virtual void QObject::disconnectNotify(const QMetaMethod&)
     virtual void disconnectNotify(const QMetaMethod &signal);
                  ^~~~~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:436:18: note:   no known conversion for argument 1 from ‘const char*’ to ‘const QMetaMethod&’
make[3]: *** [Makefile:18: siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.o] Error 1
make[2]: *** [src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/build.make:61: devel/lib/python2.7/site-packages/qt_gui_cpp/libqt_gui_cpp_sip.so] Error 2
make[1]: *** [CMakeFiles/Makefile2:375: src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/all] Error 2
make: *** [Makefile:128: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

I've been googling for the last 4 hours and haven't gotten a solution, nor even a clue. All i've found that possibly is related to this error doesn't helped too much.

I've gone through the qobject.h file aiming to solve the problem but no success ( i'm very newbie on C++, so i've done my best... )

I'm strongly needing help.

If i haven't provided enough information, please tell me, then i will provide any other information or piece of code needed to help to solve this problem.

Thanks in advance.

1

1 Answers

1
votes

The package (as all ROS Indigo packages) expect Qt4. It seems the code generated by sip-dev is indeed for Qt4 (where connectNotify(const char * signal) was used) but you are compiling it for Qt5 (where the function was replaced with connectNotify(const QMetaMethod & signal)) - hence the error message.

One solution could be to simply remove Qt5 / downgrade to Qt4. Alternatively see https://wiki.archlinux.org/index.php/Qt on how to select the default Qt version.