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

Problems resolving Jenkins build failure

asked 2016-09-07 10:13:07 -0600

rkeatin3 gravatar image

I am attempting to debug a build failure that resulted after pushing a fairly innocuous change to a single source file in my package. The important parts of the build failure are as follows (from the Jenkins build output):

14:51:12 ==> Processing catkin package: 'multisense_lib'
14:51:12 ==> Creating build directory: 'build_isolated/multisense_lib'
14:51:36 <== Finished processing package [3 of 6]: 'multisense_lib'
14:51:36 ==> Processing catkin package: 'multisense_ros'
14:51:36 ==> Creating build directory: 'build_isolated/multisense_ros'
14:51:40   The dependency target "multisense_lib" of target "multisense_ros" does not
14:51:40   exist.

This has not been a problem in that past, and I don't have any problems building this myself (even in a very minimal chroot installation of 16.04). Unfortunately, the prerelease command I would use to try to recreate this issue consistently fails with a "Hash sum mismatch".

Any help would be appreciated!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-09-07 10:53:31 -0600

Dirk Thomas gravatar image

updated 2016-09-07 10:53:51 -0600

The message you quoted is just a CMake warning:

CMake Warning (dev) at CMakeLists.txt:103 (add_dependencies):
  Policy CMP0046 is not set: Error on non-existent dependency in
  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "multisense_lib" of target "raw_snapshot" does not
This warning is for project developers.  Use -Wno-dev to suppress it.

This warning is due to using a newer CMake version and you can ignore it in this case. It will go away once the newer version of genmsg is available ( ).

The actual error why your build fails is the following:

/tmp/catkin_workspace/src/multisense_ros/multisense_ros/src/raw_snapshot.cpp:42:45: fatal error: multisense_lib/MultiSenseTypes.hh: No such file or directory
compilation terminated.

The header can not be found because the include directories are likely incomplete. The package multisense_ros correctly depends on multisense_lib and uses the include directories ( ). But looking at the package multisense_lib package it seems to not export any include directories: I would expect the problem to be fixed if the include directory is exported correctly:

  INCLUDE_DIRS include
  LIBRARIES MultiSense
  CATKIN_DEPENDS cv_bridge)

The referenced job has only four builds so there is not enough history for me to tell when it was actually starting to fail. In order to reproduce this locally you might need to use catkin_make_isolated. I assume you use catkin_make which will make all packages share the same install location (rather then a per package isolated one). So any other package exporting an include directory which is being used by multisense_ros will mask the problem and let you find the header.

edit flag offensive delete link more


Ah, I was thinking the nonexistence of the dependency target was the reason behind the trouble finding the header.

Thanks for the tip with catkin_make_isolated. I was able to reproduce and resolve the problem on my machine.

rkeatin3 gravatar image rkeatin3  ( 2016-09-07 15:15:16 -0600 )edit

I haven't seen mention of that CMake warning in any other posts, so I'm posting here to see if there is any other resolution to that issue other than wait for the newer version of genmsg. It would be great to be a "stable" package again.

rkeatin3 gravatar image rkeatin3  ( 2017-01-30 15:39:11 -0600 )edit

Question Tools



Asked: 2016-09-07 10:13:07 -0600

Seen: 969 times

Last updated: Sep 07 '16