在 ROS 工作空间中使用 catkin_make 时 Qt 出现的问题

Posted

技术标签:

【中文标题】在 ROS 工作空间中使用 catkin_make 时 Qt 出现的问题【英文标题】:Problems with Qt when using catkin_make in ROS workspace 【发布时间】:2019-01-17 09:49:43 【问题描述】:

我目前正在编写一个 Qt GUI 来远程控制 ROS 控制的机器人。在 catkin_ws 中使用catkin_make 时出现以下错误:

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "Qt5" with any of
  the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  gui/CMakeLists.txt:31 (find_package)

然后我尝试通过将set(Qt5_DIR /home/user/Qt/5.12.0/gcc_64/lib/cmake/Qt5)(包含 Qt5Config.cmake)放入 gui/CMakeLists.txt 来解决该错误并得到一个新错误:

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Found package configuration file:

    /home/user/Qt/5.12.0/gcc_64/lib/cmake/Qt5/Qt5Config.cmake

  but it set Qt5_FOUND to FALSE so package "Qt5" is considered to be NOT
  FOUND.  Reason given by package:

  The Qt5 package requires at least one component

Call Stack (most recent call first):
  gui/CMakeLists.txt:33 (find_package)

另一个 Qt5Config.cmake 在 /usr/lib/x86_64-linux-gnu/cmake/Qt5 中,尽管将 set(Qt5_DIR /usr/lib/x86_64-linux-gnu/cmake/Qt5) 放入 gui/CMakeLists.txt 只会导致类似的错误(只是路径不同)。

我现在有点迷路,也许有人可以指出正确的方向?

如果有帮助,我使用的是 Ubuntu 16.04。

【问题讨论】:

【参考方案1】:

查找包不仅仅是设置路径。

您可以在CMAKE_PREFIX_PATH 中将路径添加到 Qt 文件夹以避免这样的情况:

export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/home/user/Qt/5.12.0/gcc_64

或者您可以使用 apt-get 为 ROS 安装 qt 二进制文件,如下所示:

sudo apt-get install ros-kinetic-libqt-*

【讨论】:

以上是关于在 ROS 工作空间中使用 catkin_make 时 Qt 出现的问题的主要内容,如果未能解决你的问题,请参考以下文章

ros开发

ROS错误及其解决方法

ROS错误及其解决方法

Ros系列_学习一

ROS常用指令

在 Windows 10 的 ROS 中使用 catkin_make 时出现问题