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

Invoking make suddenly fails everywhere!

asked 2016-04-07 20:24:54 -0500

Jorge_gr gravatar image

updated 2016-04-07 20:52:37 -0500

ahendrix gravatar image

Hi all,

after nearly 3 years of using the same (groovy) workspace on Ubuntu 12.04, yesterday as I was making a pkg (which was compiling fine), it started to give me weird errors in make. Even when the code is:

#include <ros/ros.h>
int main(int argc, char **argv)
{
return (0);
}

Make produces the same error in all of my packages now, which has dumbfounded me. Can anyone suggest what's going on? Extremely long sheet follows:

mkdir -p bin cd build && cmake -Wdev
-DCMAKE_TOOLCHAIN_FILE=/opt/ros/groovy/share/ros/core/rosbuild/rostoolchain.cmake .. [rosbuild] Building package test_pkg
-- Using CATKIN_DEVEL_PREFIX: /home/george/ros_ws/mobot_nav/test_pkg/build/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy
-- This workspace overlays: /opt/ros/groovy
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Python version: 2.7
-- Using Debian Python package layout
-- Using CATKIN_ENABLE_TESTING: ON
-- Skip enable_testing() for dry packages
-- Using CATKIN_TEST_RESULTS_DIR: /home/george/ros_ws/mobot_nav/test_pkg/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- catkin 0.5.89
-- Using these message generators: gencpp;genlisp;genpy [rosbuild] Including /opt/ros/groovy/share/roslisp/rosbuild/roslisp.cmake [rosbuild] Including /opt/ros/groovy/share/roscpp/rosbuild/roscpp.cmake [rosbuild] Including /opt/ros/groovy/share/rospy/rosbuild/rospy.cmake
-- Configuring done
-- Generating done CMake Warning:   Manually-specified variables were not used by the project:

    CMAKE_TOOLCHAIN_FILE


-- Build files have been written to: /home/george/ros_ws/mobot_nav/test_pkg/build cd build && make  make[1]: Entering directory `/home/george/ros_ws/mobot_nav/test_pkg/build' make[2]: Entering directory `/home/george/ros_ws/mobot_nav/test_pkg/build' make[3]: Entering directory `/home/george/ros_ws/mobot_nav/test_pkg/build' make[3]: Leaving directory `/home/george/ros_ws/mobot_nav/test_pkg/build' [  0%] Built target rospack_genmsg_libexe make[3]: Entering directory `/home/george/ros_ws/mobot_nav/test_pkg/build' make[3]: Leaving directory `/home/george/ros_ws/mobot_nav/test_pkg/build' [  0%] Built target rosbuild_precompile make[3]: Entering directory `/home/george/ros_ws/mobot_nav/test_pkg/build' make[3]: Leaving directory `/home/george/ros_ws/mobot_nav/test_pkg/build' make[3]: Entering directory `/home/george/ros_ws/mobot_nav/test_pkg/build' [100%] Building CXX object CMakeFiles/testt.dir/src/ex.cpp.o In file included from /usr/include/boost/format.hpp:50:0,
                 from /usr/include/boost/math/policies/error_handling.hpp:30,
                 from /usr/include/boost/math/special_functions/round.hpp:14,
                 from /opt/ros/groovy/include/ros/time.h:58,
                 from /opt/ros/groovy/include/ros/ros.h:38,
                 from /home/george/ros_ws/mobot_nav/test_pkg/src/ex.cpp:1: /usr/include/boost/format/parsing.hpp: In member function ‘boost::basic_format<Ch, Tr, Alloc>& boost::basic_format<Ch, Tr, Alloc>::parse(const string_type&) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>, boost::basic_format<Ch, Tr, Alloc>::string_type = std::basic_string<char>]’: /usr/include/boost/format/format_implementation.hpp:33:13: instantiated from ‘boost::basic_format<Ch, Tr, Alloc>::basic_format(const Ch*) [with Ch = char, Tr = std::char_traits<char>, Alloc = std::allocator<char>]’ /usr/include/boost/math/policies/error_handling.hpp:106:3: instantiated from ‘void boost::math::policies::detail::raise_error(const char*, const char*, const T&) [with E
= boost::math::rounding_error, T = double ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2016-04-07 21:12:44 -0500

ahendrix gravatar image

It looks like some of the operators that should be operating on boost types are missing.

This doesn't usually happen unless you did something to change your system, or you had some kind of disk failure. (and disk failure would probably show up as missing headers instead of corrupt headers).

Since the pieces involved in this are the compiler, boost, and your workspace, the first few things that come to mind are:

  • Did you recently do an upgrade with apt-get upgrade or apt-get dist-upgrade ?
  • Did you recently upgrade your version of boost?
  • Did you recently change something in /opt/ros ?
  • Did you upgrade your version of gcc or install a new version of gcc recently?
  • Did you recently add a header to your workspace with the same name as one of the boost headers?
edit flag offensive delete link more

Comments

Well i update the system through the update manager regularly. Probably did it today, but only install through the main channel. If something was pushed upstream to the updater, shouldn't it have appeared to others as well? I'll scan for disk errors as well (it's a long shot though)

Jorge_gr gravatar image Jorge_gr  ( 2016-04-07 21:21:11 -0500 )edit

The problem is however, how to fix it! Any thoughts?

Jorge_gr gravatar image Jorge_gr  ( 2016-04-07 21:24:01 -0500 )edit

I don't think there are very many users of Groovy these days, so even if this is a problem upstream you may be the only person experiencing it, or you may just be the first since you upgrade regularly. You can check the update history in /var/log/dpkg.log

ahendrix gravatar image ahendrix  ( 2016-04-07 21:39:22 -0500 )edit

Found the problem. For some reason stl_vector.h was corrupted. Replaced it and it works!

Jorge_gr gravatar image Jorge_gr  ( 2016-04-08 18:50:30 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2016-04-07 20:24:54 -0500

Seen: 122 times

Last updated: Apr 07 '16