Arch Linux ARM中ros-indigo-qt-gui-cpp编译中的问题

时间:2016-11-14 16:30:01

标签: python c++ linux qt ros

我正在使用ROS Indigo和Arch Linux ARM,我正在尝试从AUR安装ros-indigo-qt-gui-cpp软件包。

但出现以下错误:


    ==> Starting build()...
    -- Using CATKIN_DEVEL_PREFIX: /home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/devel
    -- Using CMAKE_PREFIX_PATH: /opt/ros/indigo
    -- This workspace overlays: /opt/ros/indigo
    -- Found PythonInterp: /usr/bin/python2 (found version "2.7.12") 
    -- Using PYTHON_EXECUTABLE: /usr/bin/python2
    -- Using default Python package layout
    -- Using empy: /usr/lib/python2.7/site-packages/em.pyc
    -- Using CATKIN_ENABLE_TESTING: ON
    -- Skip enable_testing() when building binary package
    -- Using CATKIN_TEST_RESULTS_DIR: /home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/test_results
    -- Found gtest: gtests will be built
    -- Using Python nosetests: /usr/bin/nosetests-2.7
    -- catkin 0.6.18
    CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
      Imported targets not available for Boost version 106200
    Call Stack (most recent call first):
      /usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
      /usr/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
      CMakeLists.txt:5 (find_package)


    CMake Warning at /usr/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
      Imported targets not available for Boost version 106200
    Call Stack (most recent call first):
      /usr/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
      /usr/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
      CMakeLists.txt:5 (find_package)


    -- Boost version: 1.62.0
    -- Found the following Boost libraries:
    --   filesystem
    --   system
    CMake Warning at /opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:17 (find_package):
      By not providing "FindShiboken.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "Shiboken",
      but CMake did not find one.

      Could not find a package configuration file provided by "Shiboken" with any
      of the following names:

        ShibokenConfig.cmake
        shiboken-config.cmake

      Add the installation prefix of "Shiboken" to CMAKE_PREFIX_PATH or set
      "Shiboken_DIR" to a directory containing one of the above files.  If
      "Shiboken" provides a separate development package or SDK, be sure it has
      been installed.
    Call Stack (most recent call first):
      src/qt_gui_cpp_shiboken/CMakeLists.txt:41 (include)


    CMake Warning at /opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:21 (find_package):
      By not providing "FindPySide.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "PySide", but
      CMake did not find one.

      Could not find a package configuration file provided by "PySide" with any
      of the following names:

        PySideConfig.cmake
        pyside-config.cmake

      Add the installation prefix of "PySide" to CMAKE_PREFIX_PATH or set
      "PySide_DIR" to a directory containing one of the above files.  If "PySide"
      provides a separate development package or SDK, be sure it has been
      installed.
    Call Stack (most recent call first):
      src/qt_gui_cpp_shiboken/CMakeLists.txt:41 (include)


    CMake Warning at /opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:34 (find_package):
      By not providing "FindGeneratorRunner.cmake" in CMAKE_MODULE_PATH this
      project has asked CMake to find a package configuration file provided by
      "GeneratorRunner", but CMake did not find one.

      Could not find a package configuration file provided by "GeneratorRunner"
      with any of the following names:

        GeneratorRunnerConfig.cmake
        generatorrunner-config.cmake

      Add the installation prefix of "GeneratorRunner" to CMAKE_PREFIX_PATH or
      set "GeneratorRunner_DIR" to a directory containing one of the above files.
      If "GeneratorRunner" provides a separate development package or SDK, be
      sure it has been installed.
    Call Stack (most recent call first):
      src/qt_gui_cpp_shiboken/CMakeLists.txt:41 (include)


    CMake Warning at /opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:41 (message):
      Shiboken binding generator NOT available.
    Call Stack (most recent call first):
      src/qt_gui_cpp_shiboken/CMakeLists.txt:41 (include)


    -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.12", minimum required is "2.7") 
    -- SIP binding generator available.
    -- Python binding generators: sip
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build
    [  7%] Building CXX object src/qt_gui_cpp/CMakeFiles/qt_gui_cpp.dir/recursive_plugin_provider.cpp.o
    [ 14%] Building CXX object src/qt_gui_cpp/CMakeFiles/qt_gui_cpp.dir/settings.cpp.o
    [ 21%] Building CXX object src/qt_gui_cpp/CMakeFiles/qt_gui_cpp.dir/__/__/include/qt_gui_cpp/moc_plugin_bridge.cxx.o
    [ 28%] Linking CXX shared library ../../devel/lib/libqt_gui_cpp.so
    [ 78%] Built target qt_gui_cpp
    Scanning dependencies of target libqt_gui_cpp_sip
    [ 85%] Running SIP generator for qt_gui_cpp_sip Python bindings...
    Traceback (most recent call last):
      File "/opt/ros/indigo/share/python_qt_binding/cmake/sip_configure.py", line 50, in 
        config = Configuration()
      File "/opt/ros/indigo/share/python_qt_binding/cmake/sip_configure.py", line 19, in __init__
        ['qmake', '-query'], env=env, universal_newlines=True)
      File "/usr/lib/python2.7/subprocess.py", line 567, in check_output
        process = Popen(stdout=PIPE, *popenargs, **kwargs)
      File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
        errread, errwrite)
      File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
    make[2]: *** [src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_s`enter code here`ip.dir/build.make:90: sip/qt_gui_cpp_sip/Makefile] Error 1
    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...

任何想法?

如果我没有提供足够的信息,请告诉我,我可能会提供任何需要帮助解决的信息。

我不知道去哪里。

1 个答案:

答案 0 :(得分:3)

就像战士在经历了艰苦而激烈的战争之后回家一样,我很高兴地说我可以解决它!

在安装软件包 ros-indigo-qt-gui-cpp 之前,您应该安装 qt5-base

这样,当您尝试安装它时,您可能会遇到以下问题:

Getting fatal error: QWidget: No such file or directory

#include <QWidget>

为了解决这个问题,我做了:

vim /yourpath/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/qt_gui_cpp_sip/../../include/qt_gui_cpp/plugin_context.h

然后改变:

#include <QWidget>

由:

#include <QtGui>

那么这次你可能会面临另一个问题[1]正在运行的 qmake 的版本。

which qmake会告诉您路径中的qmake。

您必须确保使用qmake for qt4。

所以最后的改变是:

sudo mv /usr/bin/qmake /usr/bin/qmake.bk
sudo ln -s /usr/bin/qmake-qt4 /usr/bin/qmake

请注意,如果您使用anaconda,命令可能会根据您的环境设置而改变,例如

(如果您愿意,请务必稍后还原这些更改。)

毕竟,一切都很好:D

他们不在这里,但感谢AUR用户:D

[1] error: no matching function for call to ‘sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)’