ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

royale-ros: errors when linking with royale SDK libraries

asked 2018-02-16 03:31:21 -0500

thedomdom gravatar image

updated 2018-02-16 03:59:16 -0500

gvdhoorn gravatar image

I am trying to build the ROS package royale-ros.

I installed the most recent royale SDK as described here as a debian package.

When I try to build the package with catkin_make as described here, I get the following errors while linking:

dominik@ubuntu:~/catkin_ws/royale$ catkin_make 
Base path: /home/dominik/catkin_ws/royale
Source space: /home/dominik/catkin_ws/royale/src
Build space: /home/dominik/catkin_ws/royale/build
Devel space: /home/dominik/catkin_ws/royale/devel
Install space: /home/dominik/catkin_ws/royale/install
####
#### Running command: "make cmake_check_build_system" in "/home/dominik/catkin_ws/royale/build"
####
####
#### Running command: "make -j1 -l1" in "/home/dominik/catkin_ws/royale/build"
####
[  0%] Built target _royale_ros_generate_messages_check_deps_Config
[  0%] Built target std_msgs_generate_messages_cpp
[  0%] Built target _royale_ros_generate_messages_check_deps_Stop
[  0%] Built target _royale_ros_generate_messages_check_deps_SetExposureTime
[  0%] Built target _royale_ros_generate_messages_check_deps_Dump
[  0%] Built target _royale_ros_generate_messages_check_deps_Start
[  0%] Built target _royale_ros_generate_messages_check_deps_ExposureTimes
[  4%] Generating C++ code from royale_ros/ExposureTimes.msg
[  8%] Generating C++ code from royale_ros/SetExposureTime.msg
[ 12%] Generating C++ code from royale_ros/Start.srv
[ 16%] Generating C++ code from royale_ros/Config.srv
[ 20%] Generating C++ code from royale_ros/Dump.srv
[ 25%] Generating C++ code from royale_ros/Stop.srv
[ 25%] Built target royale_ros_generate_messages_cpp
Scanning dependencies of target config
[ 29%] Building CXX object royale/CMakeFiles/config.dir/src/config.cpp.o
Linking CXX executable /home/dominik/catkin_ws/royale/devel/lib/royale_ros/config
[ 29%] Built target config
Scanning dependencies of target dump
[ 33%] Building CXX object royale/CMakeFiles/dump.dir/src/dump.cpp.o
Linking CXX executable /home/dominik/catkin_ws/royale/devel/lib/royale_ros/dump
[ 33%] Built target dump
Linking CXX executable /home/dominik/catkin_ws/royale/devel/lib/royale_ros/lscam
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `VTT for std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::logic_error::logic_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::logic_error::logic_error(std::logic_error const&)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::length_error::length_error(char const*)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::out_of_range::out_of_range(char const*)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::resize(unsigned long, char)@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libroyale.so: undefined reference to `vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
/opt/libroyale-3.12.0.44-LINUX-x86-64Bit/bin/libspectre3.so: undefined reference to `std::__cxx11::basic_string ...
(more)
edit retag flag offensive close merge delete

Comments

Is this a cross-post of lovepark/royale-ros#2?

gvdhoorn gravatar image gvdhoorn  ( 2018-02-16 03:54:06 -0500 )edit

Yes, it is a cross-post. I'm a little bit frustrated tbh. The problem is, that they can't really help me. Furthermore, I get a similar (also GLIBCXX_3.4.21 related error), when I try to use this library: https://github.com/code-iai/pico_flex... . So you think that it is a royale error?

thedomdom gravatar image thedomdom  ( 2018-02-16 04:16:46 -0500 )edit

Btw: this situation (with your cross-post on the royale-ros issue tracker and one here) is exactly why cross-posts are frowned upon: both me (and by extension the ROS Answers community) and the royale-ros devs are now suggestion possible solutions, without knowing this from one another.

gvdhoorn gravatar image gvdhoorn  ( 2018-02-17 08:47:36 -0500 )edit

I was about to try and see whether I could quickly check what is going wrong with the royale-ros pkgs with the 3.11 SDK, but, apart from the fact that I don't appear to be able to access the SDK, I also just read that a royale-ros dev is going to do the exact same thing. I realise that ..

gvdhoorn gravatar image gvdhoorn  ( 2018-02-17 08:48:37 -0500 )edit

.. from your perspective having multiple people try and troubleshoot your issue looks like a good thing, but in reality it's essentially just duplicated (and wasted) effort for me and the royale-ros dev.

gvdhoorn gravatar image gvdhoorn  ( 2018-02-17 08:49:15 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2018-02-16 04:26:08 -0500

gvdhoorn gravatar image

updated 2018-02-17 08:39:01 -0500

This could be an incompatibility between the libraries provided by the SDK (libroyale-3.12.0.44-LINUX-x86-64Bit) and the objects output by the compiler on your own system. I would think the developers of the package should be able to help you best.


Edit:

Furthermore, I get a similar (also GLIBCXX_3.4.21 related error), when I try to use this library: https://github.com/code-iai/pico_flex... .

That last pkg seems to depend on the same Royale SDK, so seeing the same errors doesn't surprise me.

You write you run Ubuntu 14.04, did you install any additional/upgraded compilers/libstdc++ pkgs?

Do you know whether the SDK is supposed to be compatible?

Can you check a clean Docker container?


Edit2:

So I tried to use royale-ros and with the royale version 3.11 but unfortunately it did not work. The error was ld: cannot find -lroyale [..]

That sounds like a linker (search) path error.

even if I installed royale with dpkg.

that doesn't really make it special, so I'm not surprised.

edit flag offensive delete link more

Comments

Yes, I upgraded libstdc++6. apt-show-versions libstdc++6 showed the following (but did not work either): libstdc++6:amd64/trusty 4.8.4-2ubuntu1~14.04.3 upgradeable to 7.2.0-1ubuntu1~14.04

Apart from that, I did not install or upgrade any compiler.

thedomdom gravatar image thedomdom  ( 2018-02-16 06:03:35 -0500 )edit

Yes, the SDK should be compatible to Ubuntu 14.04. At least the pmd developers write in their README.md that this Royale version has been tested on Ubuntu 14.04 and Ubuntu 16.04.

EDIT: You are right, the 3.12 version is not compatible to Ubuntu 14.04. I looked in the readme of version 3.11.

thedomdom gravatar image thedomdom  ( 2018-02-16 06:09:33 -0500 )edit

Using the 3.11 version it does work? Could be a C++11 vs C++03 ABI problem.

gvdhoorn gravatar image gvdhoorn  ( 2018-02-16 07:50:21 -0500 )edit

So I tried to use royale-ros and with the royale version 3.11 but unfortunately it did not work. The error was ld: cannot find -lroyale even if I installed royale with dpkg. I also tried out pico_flexx_driver with 3.11 but there was another error.

thedomdom gravatar image thedomdom  ( 2018-02-17 06:53:42 -0500 )edit

I am now just using the sampleROS driver from the 3.11 royale SDK and it works fine (I an see the point cloud in rviz).

thedomdom gravatar image thedomdom  ( 2018-02-17 06:53:59 -0500 )edit

Question Tools

Stats

Asked: 2018-02-16 03:31:21 -0500

Seen: 745 times

Last updated: Feb 17 '18