indigo ABI break in roscpp after update?
I recently ran into the following linking error on execution. I compiled my executable locally with the latest version of ROS indigo (patch level: 1.11.16) and deployed it on our robot with a older version of indigo (1.11.13).
<executable>: symbol lookup
error: <executable>:
undefined symbol: _ZNK3ros10NodeHandle8getParamERKSsRf
which effectively resolves in a missing symbol of:
$ c++filt _ZNK3ros10NodeHandle8getParamERKSsRf
ros::NodeHandle::getParam(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float&) const
The quickfix solution was to reinstall (i.e. update roscpp) on our robots in order to remain compatible. This is obviously not a solution for non-root accessible robots. So the question here is whether this error should normally not occur or if a ABI compatibility between different patch levels of the same ROS release is not supported by default.
-Karsten