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

Revision history [back]

The package.xml file only describes what the node depends on, so that catkin can figure out what packages to add during compilation. The real heart of the compiling system is CMakeLists.txt. There you'll list both the catkin packages and the non-catkin (system) packages. Your ASICamera.h falls in the second category.

Say you're building a node called ros_asicamera, and the asicamera library is called asicamera.so. Then your CMakeLists.txt will have something like:

add_executable( ros_asicamera src/ros_asicamera.cpp)
target_link_libraries(ros_asicamera asicamera)

Bare in mind that if asicamera header and libraries files are not installed in the default system paths (e.g. /usr/lib, /usr/local, /usr/include etc) then you have to tell CMake how to find them. This is done in several ways, depending on your asicamera package. The most portable ways are pkg-config or findAsicamera.cmake (the second is preferable). If these files are not provided then you can use:

include_directories(path_to_asicamera.h)

for the header files. Finding libraries is more tricky, and you can find additional information at http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries.

Last but not least, since the error message you posted is not very informative, try doing:

make VERBOSE=1

to get additional information on the error. That also helps when posting on the Q/A.

Hope this helps!