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

Boost1.40-dev error in electric

asked 2012-02-24 12:10:12 -0600

ravenII gravatar image

updated 2014-01-28 17:11:29 -0600

ngrennan gravatar image

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 flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
0

answered 2012-02-24 20:34:22 -0600

ravenII gravatar image

updated 2012-02-25 06:57:06 -0600

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,
edit flag offensive delete link more

Comments

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.

ravenII gravatar image ravenII  ( 2012-02-27 18:16:41 -0600 )edit
0

answered 2012-02-24 16:12:24 -0600

joq gravatar image

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).

edit flag offensive delete link more

Question Tools

Stats

Asked: 2012-02-24 12:10:12 -0600

Seen: 493 times

Last updated: Feb 25 '12