[Windows] strip 'lib' prefix when loading library. #176
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a follow up of #140.
Many ROS packages are originally targeted for Linux and there is a convention to put the library prefix
lib
when describing<library path="lib/libplugin">
. However, on Windows, the shared library doesn't have such naming convention. As a result,class loader
is not able to find the library by names.This pull request is to propose that
class loader
should also search the library name withoutlib
prefix on Windows, which is as a mitigation to help downstream packages don't need to modify their plugin XML but still can load the plugin binaries.This pull request is also fix an little problem that
stripAllButFileFromPath()
is returning the path separator in the result string. Based on the context ofgetAllLibraryPathsToTry()
, the path separator seems to be an extra.