Robotics StackExchange | Archived questions

rviz_QT_VERSION Error for a rviz plugin on ROS1

Hello. I'm going to try the Rviz tutorial. I got the source codes from here.

I checked out to the kinetic-devel branch ' for ROS1 Kinetic.
And, I just build with catkin_make.

Then, I got below error.

-- catkin 0.7.14
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 6 packages in topological order:
-- ~~  - visualization_tutorials (metapackage)
-- ~~  - interactive_marker_tutorials
-- ~~  - librviz_tutorial
-- ~~  - rviz_plugin_tutorials
-- ~~  - rviz_python_tutorial
-- ~~  - visualization_marker_tutorials
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin metapackage: 'visualization_tutorials'
-- ==> add_subdirectory(visualization_tutorials/visualization_tutorials)
-- +++ processing catkin package: 'interactive_marker_tutorials'
-- ==> add_subdirectory(visualization_tutorials/interactive_marker_tutorials)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- +++ processing catkin package: 'librviz_tutorial'
-- ==> add_subdirectory(visualization_tutorials/librviz_tutorial)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Using Qt5 based on the rviz_QT_VERSION: 5.5.1
CMake Error at visualization_tutorials/librviz_tutorial/CMakeLists.txt:25 (find_package):
Could not find a configuration file for package "Qt5" that exactly matches
requested version "5.5.1".

The following configuration files were considered but not accepted:
    /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake, version: 5.6.1

-- Configuring incomplete, errors occurred!

How to fix this issue? Do I should to install Qt5?

Thanks.

Asked by harderthan on 2019-02-07 19:54:46 UTC

Comments

Answers

EDITED

NOTICE by @gvdhoorn

The EXACT argument is there to avoid incompatibilities between the version of Qt5 being linked by the tutorial package and the packages that it depends on (ie: RViz). If you don't use the same version, there is a risk of running into ABI incompatibilities, which are hard to diagnose.


Hello, I solved this problem by myself.

I remove the EXACT option on CMakeList.txt placed on each packages. like

Before

...
  find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)
...

After

...
  find_package(Qt5 ${rviz_QT_VERSION} REQUIRED Core Widgets)
...

The point of those is that you need to do every package which have same error.

Asked by harderthan on 2019-02-07 20:05:18 UTC

Comments

The EXACT argument is there to avoid incompatibilities between the version of Qt5 being linked by the tutorial package and the packages that it depends on (ie: RViz). If you don't use the same version, there is a risk of running into ABI incompatibilities, which are hard to diagnose.

Asked by gvdhoorn on 2019-02-08 04:41:04 UTC