# Boost1.40-dev error in electric

I am trying to migrate a package working under diamondback to electric. When I switch to electric I get errors with boost header files. It appears that the implementation of ros/time.h in electric is not compatible with the current boost version installed.

No errors when compiling with diamondback on the same machine.

ubuntu 10.04 libboost1.40-dev

edit retag close merge delete

Sort by » oldest newest most voted

Thanks for the answer. I forgot to mention. I had done make clean . rosmake --pre-clean did not fix it either.

This was not a standard ros package. It was a package someone wrote which worked under diamondback (still does if I switch back). So I could not just get a fresh copy. In order to start fresh I created a ros package with the dependencies, edited the CMakelist.txt and Manifest files, and copied the msg, src and include folders to make sure an incompatibility between the msg headers is not causing the problem. I still get the same error.

That made me think it can be a problem with ros electric and boost library. (rebuilding libboost1.40-dev - as suggested in another thread- did not fix the problem either). Does this have to do anything with rosdep.yaml file?

I have provided a traceback of the error here. My apologies for the detailed post. I appreciate any help.

/usr/include/boost/math/special_functions/math_fwd.hpp:615: error: invalid type in declaration before ‘;’ token

In file included from
/opt/ros/electric/stacks/ros_comm/utilities/rostime/include/ros/time.h:58,

from /opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_serialization/include/ros/serialization.h:34,

from /opt/ros/electric/stacks/common_msgs/geometry_msgs/msg_gen/cpp/include/geometry_msgs/PointStamped.h:8,

from /opt/ros/electric/stacks/geometry/tf/include/tf/transform_datatypes.h:36,

more

I got to fix this by including "ros/ros.h" before including "tf/transform_datatypes.h" Not quite sure what change in tf from diamondback to electric caused this.

( 2012-02-27 18:16:41 -0500 )edit

When you switch to a new ROS distribution, the build files in your existing working copy trees will not be compatible.

If you have working copies that were previously built using Diamondback, either check out a fresh copy or clean the build directories using make clean (in each package), or rosmake --pre-clean (which cleans the dependencies as well).

more