Arch Linux ARM编译ros-indigo-qt-gui-cpp时出现的问题

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

但是出现以下错误:


     ==>开始构build()...
     - 使用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
     - findPythonInterp:/ usr / bin / python2(find版本“2.7.12”) 
     - 使用PYTHON_EXECUTABLE:/ usr / bin / python2
     - 使用默认的Python包布局
     - 使用empy:/usr/lib/python2.7/site-packages/em.pyc
     - 使用CATKIN_ENABLE_TESTING:开启
     - 构build二进制包时跳过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
     - findgtest:gtests将被build立
     - 使用Python的鼻子testing:/usr/bin/nosetests-2.7
     - 柔</s> 0.6.18
     CMake警告在/usr/share/cmake-3.6/Modules/FindBoost.cmake:743(消息):
      导入的目标不适用于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)


     CMake警告在/usr/share/cmake-3.6/Modules/FindBoost.cmake:743(消息):
      导入的目标不适用于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
     - find以下Boost库:
     -  文件系统
     - 系统
     /opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:17(find_package)中的CMake警告:
      通过不在CMAKE_MODULE_PATH中提供“FindShiboken.cmake”这个项目
      要求CMakefind“Shiboken”提供的包configuration文件,
      但CMake没有find一个。

      找不到任何“Shiboken”提供的软件包configuration文件
      以下名称:

         ShibokenConfig.cmake
         shiboken-config.cmake

      将“Shiboken”的安装前缀添加到CMAKE_PREFIX_PATH或set
       “Shiboken_DIR”到包含上述文件之一的目录。 如果
       “Shiboken”提供了一个单独的开发包或SDK,确保它有
      已安装。
    调用堆栈(最近的呼叫优先):
       src / qt_gui_cpp_shiboken / CMakeLists.txt:41(include)


     CMake警告在/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:21(find_package):
      通过不在CMAKE_MODULE_PATH中提供“FindPySide.cmake”这个项目
      要求CMakefind由“PySide”提供的包configuration文件,但是
       CMake没有find一个。

      无法find“PySide”提供的软件包configuration文件
      以下名称:

         PySideConfig.cmake
         pyside-config.cmake

      将“PySide”的安装前缀添加到CMAKE_PREFIX_PATH或设置
       “PySide_DIR”到包含上述文件之一的目录。 如果“PySide”
      提供了一个单独的开发包或者SDK,确定它已经
      安装。
    调用堆栈(最近的呼叫优先):
       src / qt_gui_cpp_shiboken / CMakeLists.txt:41(include)


     CMake警告/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:34(find_package):
      通过不在CMAKE_MODULE_PATH中提供“FindGeneratorRunner.cmake”
      项目已经要求CMakefind一个包提供的包configuration文件
       “GeneratorRunner”,但CMake没有find一个。

      找不到“GeneratorRunner”提供的软件包configuration文件
      与以下任何名称:

         GeneratorRunnerConfig.cmake
         generatorrunner-config.cmake

      将“GeneratorRunner”的安装前缀添加到CMAKE_PREFIX_PATH或
      将“GeneratorRunner_DIR”设置为包含上述文件之一的目录。
      如果“GeneratorRunner”提供了一个单独的开发包或SDK,
      确定它已经安装。
    调用堆栈(最近的呼叫优先):
       src / qt_gui_cpp_shiboken / CMakeLists.txt:41(include)


     CMake警告在/opt/ros/indigo/share/python_qt_binding/cmake/shiboken_helper.cmake:41(消息):
       Shiboken绑定发生器不可用。
    调用堆栈(最近的呼叫优先):
       src / qt_gui_cpp_shiboken / CMakeLists.txt:41(include)


     - findPythonInterp:/ usr / bin / python2(find合适的版本“2.7.12”,最低要求是“2.7”) 
     - 可用的SIP绑定生成器。
     -  Python绑定生成器:sip
     - configuration完成
     - 生成完成
     - 生成文件已写入:/home/hiago/packages/qt_gui_core-release-release-indigo-qt_gui_cpp-0.2.30-0/src/build
     [7%]构buildCXX对象src / qt_gui_cpp / CMakeFiles / qt_gui_cpp.dir / recursive_plugin_provider.cpp.o
     [14%]构buildCXX对象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%]链接CXX共享库../../devel/lib/libqt_gui_cpp.so
     [78%]构build目标qt_gui_cpp
    扫描目标libqt_gui_cpp_sip的依赖关系
     [85%]为qt_gui_cpp_sip运行SIP生成器Python绑定...
    回溯(最近一次通话最后):
      文件“/opt/ros/indigo/share/python_qt_binding/cmake/sip_configure.py”,第50行,在 
         config =configuration()
      在__init__文件“/opt/ros/indigo/share/python_qt_binding/cmake/sip_configure.py”,第19行
         ['qmake','-query'],env = env,universal_newlines = True)
      文件“/usr/lib/python2.7/subprocess.py”,第567行,在check_output
         process = Popen(stdout = PIPE,* popenargs,** kwargs)
      在__init__文件“/usr/lib/python2.7/subprocess.py”,第711行
        错误,错误)
      在_execute_child文件“/usr/lib/python2.7/subprocess.py”,1343行
        提高child_exception
     OSError:[Errno 2]没有这样的文件或目录
     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]错误1
     make [1]:*** [CMakeFiles / Makefile2:375:src / qt_gui_cpp_sip / CMakeFiles / libqt_gui_cpp_sip.dir / all]错误2
     make:*** [Makefile:128:all]错误2
     ==>错误:build()发生故障。
        中止...

任何意识?

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

我不知道该去哪里。

经历了一场激烈的战争,一名战士回家后,我很高兴地说,我可以解决这个问题!

在安装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/../../包括/ qt_gui_cpp / plugin_context.h 

然后改变:

#include <QWidget>

通过:

#include <QtGui>

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

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

你必须确保你正在使用qmake 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] 错误:没有匹配函数调用'sipqt_gui_cpp_RosPluginlibPluginProvider_ForPlugins :: connectNotify(const char *&)'