According to the rospack implementation, ${prefix} is not context-dependent and get always expanded to the package path. If you're using devel space, this results in path to the package's source, not to the devel directory.
And really, this is from a DEBUG log of gazebo_ros.paths_plugin:
The subexpression used in the PR works so that it asks catkin for the absolute path to the built library and takes the directory it resides in. This expression is evaluated at launch time, so we can be sure the library is already built at that time.
Using
${prefix}/lib
is wrong.According to the rospack implementation,
${prefix}
is not context-dependent and get always expanded to the package path. If you're using devel space, this results in path to the package's source, not to the devel directory.And really, this is from a DEBUG log of gazebo_ros.paths_plugin:
The subexpression used in the PR works so that it asks catkin for the absolute path to the built library and takes the directory it resides in. This expression is evaluated at launch time, so we can be sure the library is already built at that time.