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

Build error in orocos_kdl when building Indigo from source on Debian 8.0 (Jessie)

asked 2015-05-31 19:11:04 -0600

damjan gravatar image

updated 2015-06-01 10:59:04 -0600

I am trying to build ROS Indigo from source on Debian Jessie, following these instructions. So far, I have successfully built the ros_comm variant and can run roscore. I'm now trying to build the robot variant. 20 of 116 packages get built successfully, but the build fails when it gets to 'orocos_kdl'. Here is the full error output:

==> Processing plain cmake package: 'orocos_kdl'
==> Creating build directory: 'build_isolated/orocos_kdl/install'
==> Building with env: '/opt/ros/indigo/'
==> cmake /home/larics/ros_catkin_ws/src/orocos_kinematics_dynamics/orocos_kdl -DCMAKE_INSTALL_PREFIX=/opt/ros/indigo -DCMAKE_BUILD_TYPE=Release -G Unix Makefiles in '/home/larics/ros_catkin_ws/build_isolated/orocos_kdl/install'
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
Orocos KDL version  (1.3.0)
Build type set to 'Release' by user.
-- Eigen found (include: /usr/include/eigen3)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/larics/ros_catkin_ws/build_isolated/orocos_kdl/install
==> make -j2 -l2 in '/home/larics/ros_catkin_ws/build_isolated/orocos_kdl/install'
Scanning dependencies of target orocos-kdl
[  3%] [  3%] Building CXX object src/CMakeFiles/orocos-kdl.dir/segment.cpp.o    
Building CXX object src/CMakeFiles/orocos-kdl.dir/chainiksolvervel_pinv_givens.cpp.o
c++: error: CMakeFiles/orocos-kdl.dir/segment.cpp.o: No such file or directory    
c++: error: CMakeFiles/orocos-kdl.dir/chainiksolvervel_pinv_givens.cpp.o: No such file or directory
src/CMakeFiles/orocos-kdl.dir/build.make:54: recipe for target 'src/CMakeFiles/orocos-kdl.dir/chainiksolvervel_pinv_givens.cpp.o' failed
make[2]: *** [src/CMakeFiles/orocos-kdl.dir/chainiksolvervel_pinv_givens.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
src/CMakeFiles/orocos-kdl.dir/build.make:77: recipe for target 'src/CMakeFiles/orocos-kdl.dir/segment.cpp.o' failed
make[2]: *** [src/CMakeFiles/orocos-kdl.dir/segment.cpp.o] Error 1
CMakeFiles/Makefile2:121: recipe for target 'src/CMakeFiles/orocos-kdl.dir/all' failed    
make[1]: *** [src/CMakeFiles/orocos-kdl.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2
<== Failed to process package 'orocos_kdl': 
 Command '['/opt/ros/indigo/', 'make', '-j2', '-l2']' returned non-zero exit status 2

Reproduce this error by running:
==> cd /home/larics/ros_catkin_ws/build_isolated/orocos_kdl && /opt/ros/indigo/ make -j2 -l2

Command failed, exiting.

I can't really understand what went wrong, seems like segment.cpp.o and chainiksolvervel_pinv_givens.cpp.o do not get built correctly, but I don't understand why. Copying the whole orocos_kdl folder to my other machine running Ubuntu Precise and building it there works flawlessly. I'm suspecting it might have something to do with the CMake version (Debian has CMake 3.0, while Ubuntu has 2.8.9).

Any help will be greately appreciated!

EDIT 1: I have been digging around ... (more)

edit retag flag offensive close merge delete


That's a rather strange error; it suggests that the directory that the build system is expecting hasn't been created for some reason; perhaps your disk is full?

ahendrix gravatar image ahendrix  ( 2015-05-31 19:38:18 -0600 )edit

The disk is only 30% used, the directory is created. Also, CMake version doesn't seem to be the issue. I have tried CMake 2.8.9 and 3.0.2, both work on Ubuntu Precise, none work on Debian Jessie. The one difference I notice is that the file build order is different on the two systems. I'm stumped

damjan gravatar image damjan  ( 2015-06-01 04:38:24 -0600 )edit

It looks like you've narrowed it down to the compiler. Perhaps Debian is using a different compiler or a different version of gcc than Ubuntu? Do you have distcc or ccache turned on?

ahendrix gravatar image ahendrix  ( 2015-06-01 15:33:43 -0600 )edit

I would say no, unless they are turned on automatically by CMake/catkin, because I haven't turned them on manually, but I'll check tomorrow when I get back to work. Thanks for helping me out with this!

damjan gravatar image damjan  ( 2015-06-01 16:32:30 -0600 )edit

Ubuntu 12.04 is using gcc 4.6, Ubuntu 14.04 is using gcc 4.8 and Debian Jessie is using 4.9. I can build orocos_kdl on both Ubuntu versions without problems, but the build fails on Debian. I have also installed gcc 4.8 on Debian and tried building with that, but I get the same error.

damjan gravatar image damjan  ( 2015-06-02 12:05:04 -0600 )edit

Neither distcc nor ccache are installed on the Debian machine.

damjan gravatar image damjan  ( 2015-06-02 12:05:39 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-09-22 09:19:12 -0600

damjan gravatar image

Turns out, the problem was a previous installation of Eigen (probably from source), which wasn't cleaned up correctly. There was an invalid /usr/share/cmake/Eigen-3.0.1/eigen-config.cmake file which was setting Eigen_INCLUDE_DIRS instead of Eigen_INCLUDE_DIR (which orocos_kdl was expecting). The result was that the include flag for Eigen was set to -I instead of -I/usr/include/eigen3. Unfortunately the first error message led me way off the right trail.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2015-05-31 19:11:04 -0600

Seen: 1,402 times

Last updated: Sep 22 '15