error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’
error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’
我将 ROS Indigo 与 Arch Linux ARM 一起使用,我正在尝试从 AUR 安装软件包 ros-indigo-qt-gui-cpp。
但是随后弹出如下错误:
[ 85%] 为 qt_gui_cpp_sip Python 绑定编译生成的代码...
/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: 在成员函数‘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:错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*&)’
qt_gui_cpp::RosPluginlibPluginProvider_ForPlugins::disconnectNotify(a0);
^
在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中,
来自 /usr/include/qt/QtCore/QThread:1,
来自 sipAPIlibqt_gui_cpp_sip.h:14,
来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:436:18: 注意:候选:virtual void QObject::disconnectNotify(const QMetaMethod&)
virtual void disconnectNotify(const QMetaMethod &signal);
^~~~~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:436:18: 注意:参数 1 没有从‘const char*’到‘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: 在成员函数‘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: 错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’
qt_gui_cpp::RosPluginlibPluginProvider_ForPlugins::connectNotify(a0);
^
在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中,
来自 /usr/include/qt/QtCore/QThread:1,
来自 sipAPIlibqt_gui_cpp_sip.h:14,
来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:435:18: 注意:候选:virtual void QObject::connectNotify(const QMetaMethod&)
virtual void connectNotify(const QMetaMethod &signal);
^~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:435:18: 注意:参数 1 没有从‘const char*’到‘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: 在成员函数‘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:错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’
(sipSelfWasArg ? QObject::connectNotify(a0) : connectNotify(a0));
^
在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中,
来自 /usr/include/qt/QtCore/QThread:1,
来自 sipAPIlibqt_gui_cpp_sip.h:14,
来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:435:18: 注意:候选:virtual void QObject::connectNotify(const QMetaMethod&)
virtual void connectNotify(const QMetaMethod &signal);
^~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:435:18: 注意:参数 1 没有从‘const char*’到‘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: 在成员函数‘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: 错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*&)’
(sipSelfWasArg ? QObject::disconnectNotify(a0) : disconnectNotify(a0));
^
在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中,
来自 /usr/include/qt/QtCore/QThread:1,
来自 sipAPIlibqt_gui_cpp_sip.h:14,
来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7:
/usr/include/qt/QtCore/qobject.h:436:18: 注意:候选:virtual void QObject::disconnectNotify(const QMetaMethod&)
virtual void disconnectNotify(const QMetaMethod &signal);
^~~~~~~~~~~~~~~~
/usr/include/qt/QtCore/qobject.h:436:18: 注意:参数 1 没有从‘const char*’到‘const QMetaMethod&’的已知转换
make[3]: *** [Makefile:18: siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.o] 错误 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] 错误2
make[1]: *** [CMakeFiles/Makefile2:375: src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/all] 错误 2
make: *** [Makefile:128: all] 错误 2
==> 错误:build() 中发生故障。
中止...
过去 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 了解如何 select 默认 Qt 版本。
我将 ROS Indigo 与 Arch Linux ARM 一起使用,我正在尝试从 AUR 安装软件包 ros-indigo-qt-gui-cpp。
但是随后弹出如下错误:
[ 85%] 为 qt_gui_cpp_sip Python 绑定编译生成的代码... /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: 在成员函数‘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:错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*&)’ qt_gui_cpp::RosPluginlibPluginProvider_ForPlugins::disconnectNotify(a0); ^ 在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中, 来自 /usr/include/qt/QtCore/QThread:1, 来自 sipAPIlibqt_gui_cpp_sip.h:14, 来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7: /usr/include/qt/QtCore/qobject.h:436:18: 注意:候选:virtual void QObject::disconnectNotify(const QMetaMethod&) virtual void disconnectNotify(const QMetaMethod &signal); ^~~~~~~~~~~~~~~~ /usr/include/qt/QtCore/qobject.h:436:18: 注意:参数 1 没有从‘const char*’到‘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: 在成员函数‘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: 错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’ qt_gui_cpp::RosPluginlibPluginProvider_ForPlugins::connectNotify(a0); ^ 在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中, 来自 /usr/include/qt/QtCore/QThread:1, 来自 sipAPIlibqt_gui_cpp_sip.h:14, 来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7: /usr/include/qt/QtCore/qobject.h:435:18: 注意:候选:virtual void QObject::connectNotify(const QMetaMethod&) virtual void connectNotify(const QMetaMethod &signal); ^~~~~~~~~~~~~ /usr/include/qt/QtCore/qobject.h:435:18: 注意:参数 1 没有从‘const char*’到‘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: 在成员函数‘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:错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’ (sipSelfWasArg ? QObject::connectNotify(a0) : connectNotify(a0)); ^ 在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中, 来自 /usr/include/qt/QtCore/QThread:1, 来自 sipAPIlibqt_gui_cpp_sip.h:14, 来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7: /usr/include/qt/QtCore/qobject.h:435:18: 注意:候选:virtual void QObject::connectNotify(const QMetaMethod&) virtual void connectNotify(const QMetaMethod &signal); ^~~~~~~~~~~~~ /usr/include/qt/QtCore/qobject.h:435:18: 注意:参数 1 没有从‘const char*’到‘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: 在成员函数‘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: 错误:没有匹配函数来调用‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::disconnectNotify(const char*&)’ (sipSelfWasArg ? QObject::disconnectNotify(a0) : disconnectNotify(a0)); ^ 在 /usr/include/qt/QtCore/qthread.h:43:0 包含的文件中, 来自 /usr/include/qt/QtCore/QThread:1, 来自 sipAPIlibqt_gui_cpp_sip.h:14, 来自 siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp:7: /usr/include/qt/QtCore/qobject.h:436:18: 注意:候选:virtual void QObject::disconnectNotify(const QMetaMethod&) virtual void disconnectNotify(const QMetaMethod &signal); ^~~~~~~~~~~~~~~~ /usr/include/qt/QtCore/qobject.h:436:18: 注意:参数 1 没有从‘const char*’到‘const QMetaMethod&’的已知转换 make[3]: *** [Makefile:18: siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.o] 错误 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] 错误2 make[1]: *** [CMakeFiles/Makefile2:375: src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/all] 错误 2 make: *** [Makefile:128: all] 错误 2 ==> 错误:build() 中发生故障。 中止...
过去 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 了解如何 select 默认 Qt 版本。