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.
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 withconnectNotify(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.