2016-11-14 5 views
0

Я использую ROS Indigo с Arch Linux ARM и я пытаюсь установить пакет РОС-индиго-кварту-графический интерфейс -cpp от AUR.ошибка: нет функции соответствия для вызова «sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins :: connectNotify (сопзИте сЬаг * &)»

Но тогда появляется следующее сообщение об ошибке:

 

[ 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++, так что я сделал все возможное ...)

Я Мне очень нужна помощь.

Если я не предоставил достаточную информацию, сообщите мне, тогда я предоставлю любую другую информацию или код, необходимый для решения этой проблемы.

Заранее спасибо.

ответ

1

Пакет (как и все пакеты ROS Indigo) ожидает Qt4. Кажется, что код, созданный sip-dev, действительно для Qt4 (где использовался connectNotify(const char * signal)), но вы его компилируете для Qt5 (где функция была заменена на connectNotify(const QMetaMethod & signal)) - отсюда сообщение об ошибке.

Одним из решений может быть просто удалить Qt5/downgrade в Qt4. Альтернативно см. https://wiki.archlinux.org/index.php/Qt о том, как выбрать версию Qt по умолчанию.

+0

P.S .: Если ваше использование Arch не установлено в камне (по какой-либо причине), может быть проще переключиться на Ubuntu 14.04, так как здесь все версии являются «правильными» для ROS Indigo и не будут меняться. – dseifert

+0

Я удалил пакет 'qt5-base' и' qt4' уже установлен. Тогда я действительно бежал ** Makepkg ** еще раз, но теперь он показывает новую ошибку: 'В файле включенную из siplibqt_gui_cpp_sipqt_gui_cppRosPluginlibPluginProvider_ForPlugins.cpp: 7: 0: sipAPIlibqt_gui_cpp_sip.h: 13: 21: Фатальная ошибка: QMetaType: Нет такого файла или справочник #include ^ '. –

+0

Я установил переменную окружения 'export QT_SELECT = 4' (как показано на https://wiki.archlinux.org/index.php/Qt), но она не исчезла. Кажется, даже делая эти изменения, сборка не осознает, что она должна использовать qt4 вместо qt5. Я не знаю, куда идти. –