Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Putting files by hand into /usr/include isn't a nice solution to your problem.

If this header file and library is contained in a debian package then the perfect solution is to simply depend on that package.

If this isn't the case but you have the source code of the library you can create an own package for it.

These two steps are recommended in the ROS Wiki Using thrid party libs.

If you haven't got access to the code you out the header and library inside your package and link the library withtarget_link_library

Putting files by hand into /usr/include isn't a nice solution to your problem.

If this header file and library is contained in a debian package then the perfect solution is to simply depend on that package.

If this isn't the case but you have the source code of the library you can create an own package for it.

These two steps are recommended in the ROS Wiki Using thrid party libs.

If you haven't got access to the code you out the header and library inside your package and link the library withtarget_link_librarytarget_link_libraries

Edit:

I wouldn't put everything in src. I would put the headers in include and the shared objects in lib. In your CMakeLists.txt there's a boilerplate target_link_libraries. Add there the location of the shared object.

For example:

target_link_libraries(your_node ${catkin_LIBRARIES} ${PROJECT_SOURCE_DIR}/lib/libxyz.so)