CoppeliaRobotics / simOMPL

OMPL (Open Motion Planning Library) plugin for CoppeliaSim
Other
16 stars 4 forks source link

Plugin compiles, but doesn't load in V-rep. #4

Closed PhilFreeman closed 5 years ago

PhilFreeman commented 5 years ago

I'm attempting to build the OMPL plugin from source. My goal is to add the edge data to getData(), but for now, I'm just trying to get a working version compiled from source without modification. Here is where I'm stuck: OS Windows 10 MSVS 2017 (used cmake to generate project) Boost 1.69.0 (precompiled) Eigen 3.3.7 ompl 1.1.0 (per instructions, but with LBTRRT removed due to what I think are C++11 compile issues with the Boost library - not sure) v_repExtOMPL with references to LBTRRT commented out in plugin.cpp and stub.cpp (5 instances) V-rep 3.5.0 rev 4

The .dll file compiles, but when I copy it into the V-rep home directory, I get the following error on the V-rep console: Plugin 'OMPL': loading... Error with plugin 'OMPL': load failed (could not load). The plugin probably couldn't load dependency libraries. Try rebuilding the plugin.

My next step is to start digging into dependencies between the distributed precompiled .dll and mine, but I was hoping at this point others might have an idea of what to look for specifically. I'm close to an impasse.

fferri commented 5 years ago

Hi @PhilFreeman, did you copy all the v_repExtOMPL.dll's dependencies to V-REP directory? Perhaps your v_repExtOMPL.dll has some more DLL dependencies, or uses different versions. You can use Dependency Walker, or command line tools such as dumpbin to see your DLL deps. If possible try to match the library versions with those you find in V-REP binary distribution.

PhilFreeman commented 5 years ago

Found it! Thanks for the pointer. I thought that all the Boost libraries were statically linked in (not a big Boost user). But Running dumpbin on my .dll vs the distributed .dll showed that boost serialization was dynamically linked. The distributed version used a different version of boost_serialization. Adding the boost dynamic libraries to the path fixed the problem. Thanks for the quick response!

fferri commented 5 years ago

Great! I'm closing this then.