ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You shouldn't link to both static and dynamic libraries. One or the other is sufficient.

In your case, instead of linking to libASICamera.a and libASICamera.so, you should just do:

link_libraries(ASICamera)

And cmake will find the appropriate static or dynamic library depending on how you're linking your executable.

Also note that if your libraries have undefined symbols the linking order matters - libraries with undefined symbols should be listed first, and the libraries which contain those symbols should be listed later.

Finally, the link_libraries() command is pretty heavy-handed; it will cause all of your executables to be linked against every library you specify. Use target_link_libraries() instead, and note that you can list multiple libraries in a single linking command.

Maybe try:

target_link_libraries(asi_converter_real ${catkin_LIBRARIES} pthread ASICamera usb)