On Thu, Jan 13, 2011 at 7:19 AM, David Gossow wrote: > On 01/13/2011 07:08 AM, Brian Gerkey wrote: >> On Wed, Jan 12, 2011 at 8:44 AM, David Gossow  wrote: >>> Seems a bit dangerous to have this flag set via the manifest.xml export >>> and not checking it somehow, as everything will compile without warning >>> and then produce seemingly random errors. >> Glad to hear that you figured it out.  Any suggestion on where else >> those compile flags should live? > it would be nice to not having to define this as a compiler flag. > Changing that would need a bigger change to Bullet itself as it seems as > there's no central header where you could define that. Yeah, it's a tough problem, and Bullet's not alone. For example, ODE and Boost both exhibit the same issue: if you intend to link together two objects using code from one of those libraries, you need to have compiled them with the same set of flags. ODE is similar to Bullet in the double vs. single precision: it exports flags like -DdDOUBLE from its pkgconfig file, which in ROS is pulled in from the manifest. Boost's circular buffer has optional debug support that, when compiled in, changes the size of the buffer structure. To make sure that all ROS code agrees on the size of that structure, rosbuild explicitly adds -DBOOST_CB_DISABLE_DEBUG if you're using Boost. brian.