错误:没有匹配的函数可调用"sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins :: connectNotify(const char *&)" [英] error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’

查看:107
本文介绍了错误:没有匹配的函数可调用"sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins :: connectNotify(const char *&)"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将ROS Indigo与Arch Linux ARM配合使用,并且试图从AUR安装软件包 ros-indigo-qt-gui-cpp .

但是随后弹出以下错误:


[ 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...

在过去的4个小时里,我一直在搜寻Google,但没有找到解决方法,甚至没有线索.我发现可能与该错误有关的所有内容并没有太大帮助.

我已经遍历了 qobject.h 文件,旨在解决该问题,但没有成功(我是C ++的新手,所以我已经尽力了...)

我非常需要帮助.

如果我没有提供足够的信息,请告诉我,然后我将提供帮助解决此问题所需的任何其他信息或代码段.

谢谢.

解决方案

该软件包(与所有ROS Indigo软件包一样)期望Qt4.看来sip-dev生成的代码确实适用于Qt4(使用connectNotify(const char * signal)的地方),但是您正在针对Qt5对其进行编译(使用connectNotify(const QMetaMethod & signal)替换了功能)-因此出现错误消息.

一种解决方案可能是简单地删除Qt5/降级到Qt4.另外,请参见 https://wiki.archlinux.org/index.php/Qt 如何选择默认的Qt版本.

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

这篇关于错误:没有匹配的函数可调用"sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins :: connectNotify(const char *&)"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆