在 Arch Linux ARM 中编译 ros-indigo-qt-gui-cpp 时出现的问题
Problems during compilation of ros-indigo-qt-gui-cpp in Arch Linux ARM
我在 Arch Linux ARM 上使用 ROS Indigo,我正在尝试从 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:开
-- 构建二进制包时跳过 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.cmake
世博研-config.cmake
将"Shiboken"的安装前缀添加到CMAKE_PREFIX_PATH或设置
"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.cmake
pyside-config.cmake
将"PySide"的安装前缀添加到CMAKE_PREFIX_PATH或设置
"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.cmake
generatorrunner-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(包含)
-- Found 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
扫描目标库的依赖qt_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)
文件“/usr/lib/python2.7/subprocess.py”,第 567 行,在 check_output 中
process = Popen(stdout=PIPE, *popenargs, **kwargs)
文件“/usr/lib/python2.7/subprocess.py”,第 711 行,在 __init__ 中
读错,写错)
文件“/usr/lib/python2.7/subprocess.py”,第 1343 行,在 _execute_child 中
提高 child_exception
OSError: [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] 错误 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() 中发生故障。
中止...
有什么想法吗?
如果我没有提供足够的信息,请告诉我,以便我提供任何需要帮助解决它的问题。
不知道去哪里了
就像一个 war 经历了一场艰苦而流血的战斗后回家的人 war,我很高兴地说我可以解决它!
在安装软件包 ros-indigo-qt-gui-cpp.[=18= 之前,您应该先安装 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]
我在 Arch Linux ARM 上使用 ROS Indigo,我正在尝试从 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:开 -- 构建二进制包时跳过 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.cmake 世博研-config.cmake 将"Shiboken"的安装前缀添加到CMAKE_PREFIX_PATH或设置 "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.cmake pyside-config.cmake 将"PySide"的安装前缀添加到CMAKE_PREFIX_PATH或设置 "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.cmake generatorrunner-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(包含) -- Found 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 扫描目标库的依赖qt_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) 文件“/usr/lib/python2.7/subprocess.py”,第 567 行,在 check_output 中 process = Popen(stdout=PIPE, *popenargs, **kwargs) 文件“/usr/lib/python2.7/subprocess.py”,第 711 行,在 __init__ 中 读错,写错) 文件“/usr/lib/python2.7/subprocess.py”,第 1343 行,在 _execute_child 中 提高 child_exception OSError: [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] 错误 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() 中发生故障。 中止...
有什么想法吗?
如果我没有提供足够的信息,请告诉我,以便我提供任何需要帮助解决它的问题。
不知道去哪里了
就像一个 war 经历了一场艰苦而流血的战斗后回家的人 war,我很高兴地说我可以解决它!
在安装软件包 ros-indigo-qt-gui-cpp.[=18= 之前,您应该先安装 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]