Configuration Summary Warnings¶
catkin tool is capable of detecting some issues or inconsistencies with the build configuration automatically.
In these cases, it will often describe the problem as well as how to resolve it.
catkin tool will detect the following issues automatically.
Missing Workspace Components¶
- Uninitialized workspace (missing
- Missing source space as specified by the configuration
CMAKE_PREFIX_PATHenvironment variable is different than the cached
- The explicitly extended workspace path yields a different
CMAKE_PREFIX_PATHthan the cached
- The build space or devel space was built with a different tool such as
- The build space or devel space was built in a different isolation mode
Packages Are Being Built Out of Order¶
package.xmldependency tags are most likely incorrect. Note that dependencies are only used to order the packages, and there is no warning if a package can’t be found.
catkin list --deps /path/to/ws/srcto list the dependencies of each package and look for errors.
Incorrect Resolution of Workspace Overlays¶
It’s possible for a CMake package to include header directories as
SYSTEM includes pointing to the workspace root include directory (like
If this happens, CMake will ignore any “normal” includes to that path, and prefer the
This means that
/path/to/ws/devel/include will be searched after any other normal includes.
If another package specifies
/opt/ros/noetic/include as a normal include, it will take precedence.
- Minimal example here: https://github.com/jbohren/isystem
- Overview of GCC’s system include precedence here: https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
As a workaround, you can force CMake to ignore all specified root include directories, and rely on CPATH for header resolution in these paths:
catkin config -a --cmake-args -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES="/opt/ros/noetic/include"
This is actually a bug in CMake and has been reported here: https://cmake.org/Bug/view.php?id=15970