ros-visualization/rviz

no matching function for call to ‘aiMatrix4x4t<float>::Decompose(aiVector3D&, aiVector3D&, float&, aiVector3D&)

andre-f-moura opened this issue · 3 comments

Hello,
I'm trying to build ROS Noetic from source on Fedora 34, following the instructions on the ROS Wiki.
I'm encountering the following error while building rviz. I also tried to download directly from the rviz git source, but observed the same error.

My environment

  • OS Version: Fedora 34 (Workstation Edition)
  • ROS Distro: Noetic (from source)
==> Processing catkin package: 'rviz'
==> Building with env: '/opt/ros/noetic/env.sh'
Makefile exists, skipping explicit cmake invocation...
==> make cmake_check_build_system in '/home/andre/ros_catkin_ws/build_isolated/rviz'
==> make -j8 -l8 in '/home/andre/ros_catkin_ws/build_isolated/rviz'
[  0%] Built target std_msgs_generate_messages_cpp
[  0%] Built target std_msgs_generate_messages_nodejs
[  0%] Built target std_msgs_generate_messages_py
[  0%] Built target std_msgs_generate_messages_lisp
[  0%] Built target std_msgs_generate_messages_eus
[  0%] Built target tf_generate_messages_nodejs
[  0%] Built target std_srvs_generate_messages_nodejs
[  0%] Built target std_srvs_generate_messages_lisp
[  0%] Built target rosgraph_msgs_generate_messages_nodejs
[  0%] Built target std_srvs_generate_messages_eus
[  0%] Built target actionlib_generate_messages_cpp
[  0%] Built target nav_msgs_generate_messages_eus
[  0%] Built target nav_msgs_generate_messages_lisp
[  0%] Built target actionlib_msgs_generate_messages_py
[  0%] Built target std_srvs_generate_messages_py
[  0%] Built target actionlib_msgs_generate_messages_eus
[  0%] Built target roscpp_generate_messages_cpp
[  0%] Built target map_msgs_generate_messages_nodejs
[  0%] Built target rosgraph_msgs_generate_messages_eus
[  0%] Built target _rviz_generate_messages_check_deps_SendFilePath
[  0%] Built target roscpp_generate_messages_py
[  0%] Built target roscpp_generate_messages_eus
[  0%] Built target sensor_msgs_generate_messages_cpp
[  0%] Built target geometry_msgs_generate_messages_eus
[  0%] Built target nav_msgs_generate_messages_nodejs
[  0%] Built target sensor_msgs_generate_messages_nodejs
[  0%] Built target tf2_msgs_generate_messages_eus
[  0%] Built target geometry_msgs_generate_messages_py
[  0%] Built target sensor_msgs_generate_messages_py
[  0%] Built target map_msgs_generate_messages_py
[  0%] Built target actionlib_generate_messages_lisp
[  0%] Built target roscpp_generate_messages_lisp
[  0%] Built target rosgraph_msgs_generate_messages_py
[  0%] Built target geometry_msgs_generate_messages_cpp
[  0%] Built target tf2_msgs_generate_messages_py
[  0%] Built target nav_msgs_generate_messages_cpp
[  0%] Built target visualization_msgs_generate_messages_eus
[  0%] Built target geometry_msgs_generate_messages_nodejs
[  0%] Built target visualization_msgs_generate_messages_lisp
[  0%] Built target tf2_msgs_generate_messages_cpp
[  0%] Built target rosgraph_msgs_generate_messages_lisp
[  0%] Built target tf_generate_messages_eus
[  0%] Built target roscpp_generate_messages_nodejs
[  0%] Built target geometry_msgs_generate_messages_lisp
[  0%] Built target tf_generate_messages_cpp
[  0%] Built target map_msgs_generate_messages_cpp
[  0%] Built target map_msgs_generate_messages_lisp
[  0%] Built target actionlib_msgs_generate_messages_cpp
[  0%] Built target actionlib_generate_messages_eus
[  0%] Built target rosgraph_msgs_generate_messages_cpp
[  0%] Built target std_srvs_generate_messages_cpp
[  0%] Built target sensor_msgs_generate_messages_eus
[  0%] Built target sensor_msgs_generate_messages_lisp
[  0%] Built target visualization_msgs_generate_messages_cpp
[  0%] Built target map_msgs_generate_messages_eus
[  0%] Built target actionlib_generate_messages_nodejs
[  0%] Built target actionlib_msgs_generate_messages_nodejs
[  0%] Built target actionlib_generate_messages_py
[  0%] Built target tf_generate_messages_py
[  0%] Built target tf2_msgs_generate_messages_lisp
[  0%] Built target actionlib_msgs_generate_messages_lisp
[  0%] Built target tf2_msgs_generate_messages_nodejs
[  0%] Built target visualization_msgs_generate_messages_nodejs
[  0%] Built target visualization_msgs_generate_messages_py
[  1%] Automatic MOC for target connect_test
[  1%] Built target nav_msgs_generate_messages_py
[  1%] Built target tf_generate_messages_lisp
[  1%] Automatic MOC for target interactive_marker_test
[  2%] Built target rviz_generate_messages_eus
[  3%] Built target rviz_generate_messages_py
[  3%] Built target connect_test_autogen
[  3%] Built target rviz_generate_messages_nodejs
[  3%] Built target rviz_generate_messages_cpp
[  3%] Built target rviz_generate_messages_lisp
[  3%] Built target interactive_marker_test_autogen
Consolidate compiler generated dependencies of target connect_test
Consolidate compiler generated dependencies of target interactive_marker_test
[  3%] Built target rviz_generate_messages
[  3%] Automatic MOC for target rviz
[  5%] Built target connect_test
[  6%] Built target interactive_marker_test
[  6%] Built target rviz_autogen
Consolidate compiler generated dependencies of target rviz
[  7%] Building CXX object src/rviz/CMakeFiles/rviz.dir/mesh_loader.cpp.o
[  7%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/billboard_line.cpp.o
[  7%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/camera_base.cpp.o
[  8%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/grid.cpp.o
[  8%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/initialization.cpp.o
[  8%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/line.cpp.o
[ 10%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/object.cpp.o
[ 10%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/movable_text.cpp.o
[ 10%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/ogre_logging.cpp.o
In file included from /usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
                 from /usr/include/boost/smart_ptr/detail/yield_k.hpp:23,
                 from /usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
                 from /usr/include/boost/smart_ptr/detail/spinlock.hpp:42,
                 from /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:29,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/boost/date_time/time_clock.hpp:17,
                 from /usr/include/boost/thread/thread_time.hpp:9,
                 from /usr/include/boost/thread/lock_types.hpp:18,
                 from /usr/include/boost/thread/pthread/recursive_mutex.hpp:13,
                 from /usr/include/boost/thread/recursive_mutex.hpp:16,
                 from /usr/include/OGRE/Threading/OgreThreadHeadersBoost.h:47,
                 from /usr/include/OGRE/Threading/OgreThreadHeaders.h:34,
                 from /usr/include/OGRE/OgreLog.h:35,
                 from /usr/include/OGRE/OgreLogManager.h:34,
                 from /home/andre/ros_catkin_ws/src/rviz/src/rviz/ogre_helpers/ogre_logging.cpp:30:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
/home/andre/ros_catkin_ws/src/rviz/src/rviz/mesh_loader.cpp: In function ‘void rviz::buildMesh(const aiScene*, const aiNode*, const MeshPtr&, Ogre::AxisAlignedBox&, float&, std::vector<Ogre::SharedPtr<Ogre::Material> >&, aiMatrix4x4)’:
/home/andre/ros_catkin_ws/src/rviz/src/rviz/mesh_loader.cpp:238:24: error: no matching function for call to ‘aiMatrix4x4t<float>::Decompose(aiVector3D&, aiVector3D&, float&, aiVector3D&)’
  238 |     transform.Decompose(scaling, axis, angle, pos);
      |     ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/assimp/types.h:514,
                 from /usr/include/assimp/Importer.hpp:53,
                 from /home/andre/ros_catkin_ws/src/rviz/src/rviz/mesh_loader.cpp:58:
/usr/include/assimp/matrix4x4.inl:302:13: note: candidate: ‘void aiMatrix4x4t<TReal>::Decompose(aiVector3t<TReal>&, aiQuaterniont<TReal>&, aiVector3t<TReal>&) const [with TReal = float]’
  302 | inline void aiMatrix4x4t<TReal>::Decompose (aiVector3t<TReal>& scaling, aiQuaterniont<TReal>& rotation,
      |             ^~~~~~~~~~~~~~~~~~~
/usr/include/assimp/matrix4x4.inl:302:13: note:   candidate expects 3 arguments, 4 provided
[ 11%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/ogre_render_queue_clearer.cpp.o
make[2]: *** [src/rviz/CMakeFiles/rviz.dir/build.make:342: src/rviz/CMakeFiles/rviz.dir/mesh_loader.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:2612: src/rviz/CMakeFiles/rviz.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
<== Failed to process package 'rviz': 
  Command '['/opt/ros/noetic/env.sh', 'make', '-j8', '-l8']' returned non-zero exit status 2.

Reproduce this error by running:
==> cd /home/andre/ros_catkin_ws/build_isolated/rviz && /opt/ros/noetic/env.sh make -j8 -l8

Command failed, exiting.
  • Git commit: d122ab1
  • System locale : en_US.UTF-8

You are using an incompatible version of libassimp.

Any suggestion on how to find and install a compatible version?
Thank you for your reply.

Have a look at the targeted platforms.
There, Fedora 32 is listed for Noetic. Use a corresponding assimp from that version.