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

I recently ran into this while fixing some catkin_lint problems.

See fkie/catkin_lint#78.

In short: yaml-cpp does not play nice with CMake's conventions. The name of the find-script uses yaml-cpp as the name, but the variables defined by it use YAML_CPP as the prefix.

catkin_simple (and actually regular Catkin as well, so I'm not sure this is a problem of catkin_simple per se), rightly assume if a find-script is called FindSomething.cmake, all variables defined by/in it are prefixed by Something (note capitalisation). yaml-cpp does not follow this convention and this causes your linking problems (ie: Catkin generates code to link against yaml-cpp_LIBRARIES, but the variable is actually called YAML_CPP_LIBRARIES).

I recently ran into this while fixing some catkin_lint problems.

See fkie/catkin_lint#78.

In short: yaml-cpp does not play nice with CMake's conventions. The name of the find-script uses yaml-cpp as the name, but the variables defined by it use YAML_CPP as the prefix.

catkin_simple (and actually regular Catkin as well, so I'm not sure this is a problem of catkin_simple per se), rightly assume if a find-script is called FindSomething.cmake, all variables defined by/in it are prefixed by Something (note capitalisation). yaml-cpp does not follow this convention and this causes your linking problems (ie: Catkin CMake/Catkin generates code to link against yaml-cpp_LIBRARIES, but the variable is actually called YAML_CPP_LIBRARIES).

I recently ran into this while fixing some catkin_lint problems.

See fkie/catkin_lint#78.

In short: yaml-cpp does not play nice with CMake's conventions. The name of the find-script uses yaml-cpp as the name, but the variables defined by it use YAML_CPP as the prefix.

catkin_simple (and actually regular Catkin as well, so I'm not sure this is a problem of catkin_simple per se), rightly assume if a find-script is called FindSomething.cmake, all variables defined by/in it are prefixed by Something (note capitalisation). capitalisation).

yaml-cpp does not follow this convention and this causes your linking problems (ie: CMake/Catkin generates code to link against yaml-cpp_LIBRARIES, but the variable is actually called YAML_CPP_LIBRARIES).