c++ - 错误 : no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’

标签 c++ qt archlinux ros

我在 Arch Linux ARM 上使用 ROS Indigo,我正在尝试从 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 个小时我一直在谷歌搜索,但没有找到解决方案,甚至连线索都没有。我发现可能与此错误有关的所有内容都没有太大帮助。

我已经通过 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 版本。

关于c++ - 错误 : no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582839/

相关文章:

c++ - 在 C++ 中调试非链接头文件

c++ - 使用递归的骑士巡回算法

C++ 部分类模板针对多个参数的特化

c++ - 如何在 Qt 中打印 QWidget?

c++ - 模型/ View 委托(delegate)组件公共(public)部分

postgresql -/var/lib/postgres/data 存在但不为空

c++ - 静态类成员的顺序

xml - 如何返回 QDomDocument 中的根元素?

linux - 无法在 linux 中找到 syscall_table_32.S 文件

linux - Antergos Linux 上的 "OPENSSL_1.0.0 not found"