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

Revision history [back]

Fixing CMakeLists.txt seems to work.

test/main_test.cpp defines a dependency that requires custom_msgs.

## Add gtest based cpp test target and link libraries
if (CATKIN_ENABLE_TESTING)
  catkin_add_gtest(${PROJECT_NAME}-test test/main_test.cpp)
  add_dependencies(${PROJECT_NAME}-test ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) # added
  target_link_libraries(${PROJECT_NAME}-test ${catkin_LIBRARIES} ${PROJECT_NAME}_test)
endif()

Reference: https://answers.ros.org/question/286311/when-is-catkin_exported_targets-needed/

Fixing CMakeLists.txt seems to work.

test/main_test.cpp defines a dependency that requires custom_msgs.

## Add gtest based cpp test target and link libraries
if (CATKIN_ENABLE_TESTING)
  catkin_add_gtest(${PROJECT_NAME}-test test/main_test.cpp)
  add_dependencies(${PROJECT_NAME}-test ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) # added
  target_link_libraries(${PROJECT_NAME}-test ${catkin_LIBRARIES} ${PROJECT_NAME}_test)
endif()

Reference: https://answers.ros.org/question/286311/when-is-catkin_exported_targets-needed/

Update

I found something else.

add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
add_dependencies(${PROJECT_NAME}_test ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) # added

The following may also be relevant.

catkin_package(
# INCLUDE_DIRS include
# LIBRARIES Software_maps_and_roots
   CATKIN_DEPENDS roscpp std_msgs # update
   r2_msgs # added
   sensor_msgs # added
   cv_bridge # added
# DEPENDS system_lib
)