0
$\begingroup$

Rosanswers logo

I am building ROS Groovy Desktop on a Pandaboard running Ubuntu 12.04 Precise using armhf. As ROS is not currently released for armhf I have had to compile Groovy from source. I am attempting to compile RVIZ and it crashes part-way through with errors related to "undefined reference to 'vtable for Assimp::IOSystem' "

  • Does anyone know how I can get past this error and get RVIZ to compile properly?

See below for the full output from running Make within the RVIZ directory:

[ 61%] Built target rviz Linking CXX executable /home/user/ros_catkin_ws/devel_isolated/rviz/lib/rviz/rviz [ 92%] Built target default_plugin [ 92%] Generating moc_image_view.cxx Scanning dependencies of target rviz_image_view [ 92%] Building CXX object src/image_view/CMakeFiles/rviz_image_view.dir/image_view.cpp.o /home/user/ros_catkin_ws/devel_isolated/rviz/lib/librviz.so: undefined reference to vtable for Assimp::IOSystem' /home/user/ros_catkin_ws/devel_isolated/rviz/lib/librviz.so: undefined reference to typeinfo for Assimp::IOSystem' collect2: ld returned 1 exit status make[2]: *** [/home/user/ros_catkin_ws/devel_isolated/rviz/lib/rviz/rviz] Error 1 make[1]: *** [src/rviz/CMakeFiles/executable.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 92%] Building CXX object src/image_view/CMakeFiles/rviz_image_view.dir/main.cpp.o In file included from /usr/include/qt4/QtCore/qobject.h:48:0, from /usr/include/qt4/QtCore/qcoreapplication.h:45, from /usr/include/qt4/QtGui/qapplication.h:45, from /usr/include/qt4/QtGui/QApplication:1, from /home/user/ros_catkin_ws/src/rviz/src/image_view/main.cpp:34: /usr/include/qt4/QtCore/qstring.h:174:17: note: the mangling of ‘va_list’ has changed in GCC 4.4 [ 93%] Building CXX object src/image_view/CMakeFiles/rviz_image_view.dir/moc_image_view.cxx.o In file included from /usr/include/qt4/QtCore/qobject.h:48:0, from /usr/include/qt4/QtCore/qtimer.h:48, from /usr/include/qt4/QtCore/QTimer:1, from /home/user/ros_catkin_ws/src/rviz/src/image_view/image_view.cpp:32: /usr/include/qt4/QtCore/qstring.h:174:17: note: the mangling of ‘va_list’ has changed in GCC 4.4 In file included from /usr/include/qt4/QtCore/qobject.h:48:0, from /usr/include/qt4/QtGui/qwidget.h:46, from /usr/include/qt4/QtGui/QWidget:1, from /home/user/ros_catkin_ws/src/rviz/src/rviz/ogre_helpers/render_widget.h:32, from /home/user/ros_catkin_ws/src/rviz/src/rviz/ogre_helpers/qt_ogre_render_window.h:6, from /home/user/ros_catkin_ws/build_isolated/rviz/src/image_view/../../../../src/rviz/src/image_view/image_view.h:31, from /home/user/ros_catkin_ws/build_isolated/rviz/src/image_view/moc_image_view.cxx:10: /usr/include/qt4/QtCore/qstring.h:174:17: note: the mangling of ‘va_list’ has changed in GCC 4.4 Linking CXX executable /home/user/ros_catkin_ws/devel_isolated/rviz/lib/rviz/image_view /home/user/ros_catkin_ws/devel_isolated/rviz/lib/librviz.so: undefined reference to vtable for Assimp::IOSystem' /home/user/ros_catkin_ws/devel_isolated/rviz/lib/librviz.so: undefined reference to typeinfo for Assimp::IOSystem' collect2: ld returned 1 exit status make[2]: *** [/home/user/ros_catkin_ws/devel_isolated/rviz/lib/rviz/image_view] Error 1 make[1]: *** [src/image_view/CMakeFiles/rviz_image_view.dir/all] Error 2 make: *** [all] Error 2


Originally posted by gpr on ROS Answers with karma: 31 on 2013-01-13

Post score: 3

$\endgroup$

3 Answers 3

0
$\begingroup$

Rosanswers logo

I had the same issue and I solved it by patching mesh_loader.cpp by adding the next lines after the assimp include lines:

#  ifdef __arm__                 // fix for ARM build
#include <strings.h>
bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2) const
{
    return !::strcasecmp(p1, p2);
}
#  endif

This is basically the same patch as here applied for the collada_urdf package: h++ps://groups.google.com/forum/#!msg/ros-sig-embedded/26XlDtZhyNs/OexZAx6BCBcJ


Originally posted by evk02 with karma: 218 on 2014-02-06

This answer was ACCEPTED on the original site

Post score: 10


Original comments

Comment by TSC on 2014-06-30:
Did the trick to Odroid running Ubuntu Linaro 12.11 and ROS Hydro ;)

Comment by Tanmay on 2015-06-19:
Give this man a cookie.

Comment by rbaleksandar on 2015-08-23:
Spot on. As small of a change this is without it a build of rviz is a no go. :D

Comment by HassanNadeem on 2016-02-05:
Following is the path to the file "/home/pi/ros_catkin_ws/src/rviz/src/rviz/mesh_loader.cpp" if you are following the setups on wiki.ros.org

$\endgroup$
0
$\begingroup$

Rosanswers logo

RVIZ is pointless to have on the pandaboard. It is not powerful enough to run it and does not have the required video drivers to make it work. Just remove the package and anything that depends on the rviz package.


Originally posted by Raptor with karma: 377 on 2013-01-16

This answer was NOT ACCEPTED on the original site

Post score: 2


Original comments

Comment by Tanmay on 2015-06-19:
Interestingly if you compile it, this means you can compile packages that depend on rviz, and then disable / not actually use rviz when you are running them.

Comment by rbaleksandar on 2015-08-22:
I wanted the Rqt stuff and the Rviz was just a dependency (along with VLC player?!?!). So if you want to use and develop something like the Rqt dashboard this is definitely a must. As for using Rviz on such a platform - yeap, it's like shooting yourself in the kneecap.

$\endgroup$
0
$\begingroup$

Rosanswers logo

The Indigo builds for Trusty armhf include a patched version of ASSIMP that no longer requires patches to all of the packages that depend on it.


Originally posted by ahendrix with karma: 47576 on 2014-09-08

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.