Arch Linux ARM 编译ros-indigo-qt-gui-cpp 时出现的问题 [英] Problems during compilation of ros-indigo-qt-gui-cpp in Arch Linux ARM

查看:110
本文介绍了Arch Linux ARM 编译ros-indigo-qt-gui-cpp 时出现的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将 ROS Indigo 与 Arch Linux ARM 一起使用,并且我正在尝试从 AUR 安装 ros-indigo-qt-gui-cpp 包.

但是出现如下错误:

<前>==> 开始构建()...-- 使用CATKIN_DEVEL_PREFIX:/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/devel-- 使用 CMAKE_PREFIX_PATH:/opt/ros/indigo-- 此工作区覆盖:/opt/ros/indigo-- 找到 PythonInterp:/usr/bin/python2(找到版本2.7.12")-- 使用 PYTHON_EXECUTABLE:/usr/bin/python2-- 使用默认的 Python 包布局-- 使用 empy:/usr/lib/python2.7/site-packages/em.pyc-- 使用 CATKIN_ENABLE_TESTING: ON-- 构建二进制包时跳过 enable_testing()-- 使用CATKIN_TEST_RESULTS_DIR:/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build/test_results-- 找到 gtest: gtests 将被构建-- 使用 Python 鼻子测试:/usr/bin/nosetests-2.7-- 柳絮 0.6.18/usr/share/cmake-3.6/Modules/FindBoost.cmake:743 处的 CMake 警告(消息):导入的目标不适用于 Boost 版本 106200调用堆栈(最近调用优先):/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)/usr/share/cmake-3.6/Modules/FindBoost.cmake:743 处的 CMake 警告(消息):导入的目标不适用于 Boost 版本 106200调用堆栈(最近调用优先):/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)-- 升级版本:1.62.0-- 找到以下 Boost 库:- 文件系统- 系统/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:17 (find_package) 处的 CMake 警告:通过不在 CMAKE_MODULE_PATH 中提供FindShiboken.cmake"这个项目要求CMake找到Shiboken"提供的包配置文件,但是 CMake 没有找到.找不到Shiboken"提供的包配置文件以下名称:ShibokenConfig.cmakeshiboken-config.cmake在CMAKE_PREFIX_PATH中添加Shiboken"的安装前缀或设置Shiboken_DIR"到包含上述文件之一的目录.如果Shiboken"提供了一个单独的开发包或SDK,请确保它有已安装.调用堆栈(最近调用优先):src/qt_gui_cpp_shiboken/CMakeLists.txt:41(包含)在/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:21 (find_package) 的 CMake 警告:通过不在 CMAKE_MODULE_PATH 中提供FindPySide.cmake"这个项目要求 CMake 找到PySide"提供的包配置文件,但是CMake 没有找到.找不到PySide"提供的包配置文件以下名称:PySideConfig.cmakepyside-config.cmake在CMAKE_PREFIX_PATH中添加PySide"的安装前缀或者设置PySide_DIR"到包含上述文件之一的目录.如果PySide"提供单独的开发包或SDK,请确保已经安装.调用堆栈(最近调用优先):src/qt_gui_cpp_shiboken/CMakeLists.txt:41(包含)在/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:34 (find_package) 的 CMake 警告:通过不在 CMAKE_MODULE_PATH 中提供FindGeneratorRunner.cmake"这个项目已经要求 CMake 找到一个包配置文件GeneratorRunner",但 CMake 没有找到.找不到GeneratorRunner"提供的包配置文件具有以下任何名称:GeneratorRunnerConfig.cmakegeneratorrunner-config.cmake将GeneratorRunner"的安装前缀添加到 CMAKE_PREFIX_PATH 或将GeneratorRunner_DIR"设置为包含上述文件之一的目录.如果GeneratorRunner"提供单独的开发包或SDK,确定它已安装.调用堆栈(最近调用优先):src/qt_gui_cpp_shiboken/CMakeLists.txt:41(包含)/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:41 处的 CMake 警告(消息):Shiboken 绑定生成器不可用.调用堆栈(最近调用优先):src/qt_gui_cpp_shiboken/CMakeLists.txt:41(包含)-- 找到 PythonInterp:/usr/bin/python2(找到合适的版本2.7.12",最低要求是2.7")-- SIP 绑定生成器可用.-- Python 绑定生成器:sip-- 配置完成-- 生成完成-- 构建文件已写入:/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build[ 7%] 构建 CXX 对象 src/qt_gui_cpp/CMakeFiles/qt_gui_cpp.dir/recursive_plugin_provider.cpp.o[ 14%] 构建 CXX 对象 src/qt_gui_cpp/CMakeFiles/qt_gui_cpp.dir/settings.cpp.o[ 21%] 构建 CXX 对象 src/qt_gui_cpp/CMakeFiles/qt_gui_cpp.dir/__/__/include/qt_gui_cpp/moc_plugin_bridge.cxx.o[ 28%] 链接 CXX 共享库 ../../devel/lib/libqt_gui_cpp.so[ 78%] 构建目标 qt_gui_cpp扫描目标libqt_gui_cpp_sip的依赖[ 85%] 为 qt_gui_cpp_sip Python 绑定运行 SIP 生成器...回溯(最近一次调用最后一次):文件/opt/ros/indigo/share/python_qt_binding/cmake/sip_configure.py",第 50 行,在配置 = 配置()文件/opt/ros/indigo/share/python_qt_binding/cmake/sip_configure.py",第 19 行,在 __init__ 中['qmake', '-query'], env=env,universal_newlines=True)check_output 中的文件/usr/lib/python2.7/subprocess.py",第 567 行进程 = Popen(stdout=PIPE, *popenargs, **kwargs)文件/usr/lib/python2.7/subprocess.py",第 711 行,在 __init__ 中错误读取,错误写入)文件/usr/lib/python2.7/subprocess.py",第 1343 行,在 _execute_child 中引发 child_exceptionOSError: [Errno 2] 没有那个文件或目录make[2]: *** [src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_s`在此输入代码`ip.dir/build.make:90: sip/qt_gui_cpp_sip/Makefile] 错误1make[1]: *** [CMakeFiles/Makefile2:375: src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/all] 错误 2make: *** [Makefile:128: all] 错误 2==> 错误:构建()中发生故障.正在中止...

有什么想法吗?

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

我不知道该去哪里.

解决方案

就像一个战士在一场艰苦而血腥的战争后回家一样,我很高兴地说我可以解决它!

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

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

出现致命错误:QWidget:没有那个文件或目录

#include

为了解决它,我做到了:

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

作者:

#include

那么这次您可能会面临另一个问题[1],关于正在运行的 qmake 版本.

which qmake 会告诉你哪个 qmake 在你的路径中.

你必须确保你在 qt4 上使用 qmake.

所以最后的变化是:

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

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

(如果您愿意,请确保稍后还原这些更改.)

毕竟一切都应该没问题:D

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

[1] 错误:没有匹配调用'sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins::connectNotify(const char*&)'

的函数

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 the following error arises:


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

Any ideia?

If i haven't provided enough information, please tell so that i might provided anything need to help to solve it.

I don't know where to go.

解决方案

Like a warrior coming home after a hard and bleeding battle war, i'm here glad to say i could solve it!

You should have qt5-base installed before installing the package ros-indigo-qt-gui-cpp.

This way, when you try to install it, you'll probably face the following issue:

Getting fatal error: QWidget: No such file or directory

#include <QWidget>

In order to solve it, i did:

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

then change:

#include <QWidget>

by:

#include <QtGui>

Then you will probably face another issue[1] this time about the version of qmake that is running.

which qmake will show you which qmake is in your path.

You have to make sure you are using qmake for qt4.

So the last change, was:

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

Note that commands might change depending on your environment setup, if you're using anaconda, for example

( Make sure to revert those changes later if you want to. )

Everything shoud be fine afterall :D

They aren't here, but thanks for AUR users as well :D

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

这篇关于Arch Linux ARM 编译ros-indigo-qt-gui-cpp 时出现的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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