ros-industrial-consortium / godel

ROS-Industrial Focused Technical Project: Robotic Blending
77 stars 48 forks source link

Duplicated libsocket ... #245

Open melvinma opened 5 years ago

melvinma commented 5 years ago

There might be an easy solution to this one. I am just new to C++/Make.

So in Ubuntu 16.04, when building Gobel, I got the following error. It appears that I have two copies of libsocket in the system: one from (indirectly) source download from Gobel and the other from Perl installation. I could not uninstall Perl because that will also uninstall many ROS packages. When I tried to delete libsocket from my src directory, the build also fails (because of missing files).

What should I do now? Thank you very much for helping out.

Errors     << keyence_experimental:make /home/User/workspace/demos/godel/logs/keyence_experimental/build.make.000.log                                       
make[2]: *** No rule to make target '/home/User/workspace/demos/godel/build/libsocket/C++/libsocket++.so', needed by '/home/User/workspace/demos/godel/devel/.private/keyence_experimental/lib/libkeyence_impl.so'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [keyence_library/CMakeFiles/keyence_impl.dir/all] Error 2
make: *** [all] Error 2
cd /home/User/workspace/demos/godel/build/keyence_experimental; catkin build --get-env keyence_experimental | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
melvinma commented 5 years ago

Since there are no activities in this project for a while. I will just leave my half baked solution here. This is not definitive solution yet. But somehow it seems work occassionally.

After downloading the keyence_experimental, I manually did the following before "catkin build"

inside src/keyence_experimental/CMakeLists.txt file, change the line:
       find_package(libsocket REQUIRED)
to
       find_package(libsocket CONFIG REQUIRED).

With CONFIG, the second build seems successful - even though the first build will still fail. :)