在 OSX 上编译 rosbag_storage 的问题

Issues compiling rosbag_storage on OSX

使用 this tutorial 在 OSX 上编译 Ros (Jade),我在 rosbag_storage 和 运行 ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release 时收到以下错误:

ros/ros_catkin_ws/src/ros_comm/rosbag_storage/src/buffer.cpp:71:5: error: use of undeclared identifier 'assert' assert(buffer_);

然后是一堆类似的错误:

/usr/local/include/boost/smart_ptr/shared_ptr.hpp:916:9: error: use of undeclared identifier 'assert' BOOST_ASSERT( deleter_.use_count() <= 1 );

那是从哪里来的?

看起来它来自于与 GStreamer 的冲突,就像 this issue 中一样。只需删除 /Library/Frameworks/GStreamer.framework/Headers/assert.h 就足以解决问题:

mv /Library/Frameworks/GStreamer.framework/Headers/assert.h /Library/Frameworks/GStreamer.framework/Headers/assert.h.bak