This was causing a linkedit error on OS X:

```
Linking CXX shared library /tmp/ublox_ws/devel/lib/libublox_gps.dylib
Undefined symbols for architecture x86_64:
  "ros::serialization::throwStreamOverrun()", referenced from:
      void ros::serialization::Serializer<unsigned short>::write<ros::serialization::OStream>(ros::serialization::OStream&, unsigned short) in gps.cpp.o
      void ros::serialization::Serializer<unsigned int>::write<ros::serialization::OStream>(ros::serialization::OStream&, unsigned int) in gps.cpp.o
      void ros::serialization::Serializer<unsigned char>::write<ros::serialization::OStream>(ros::serialization::OStream&, unsigned char) in gps.cpp.o
  "boost::this_thread::interruption_point()", referenced from:
      boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) in gps.cpp.o
      bool boost::condition_variable_any::do_wait_until<boost::unique_lock<boost::mutex> >(boost::unique_lock<boost::mutex>&, timespec const&) in gps.cpp.o
  "boost::this_thread::hiden::sleep_until(timespec const&)", referenced from:
      boost::this_thread::sleep(boost::posix_time::ptime const&) in gps.cpp.o
  "boost::detail::thread_data_base::~thread_data_base()", referenced from:
      boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::~thread_data() in gps.cpp.o
  "boost::detail::get_current_thread_data()", referenced from:
      boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in gps.cpp.o
  "boost::system::system_category()", referenced from:
      ___cxx_global_var_init3 in gps.cpp.o
      boost::asio::error::get_system_category() in gps.cpp.o
      boost::thread_exception::thread_exception(int, char const*) in gps.cpp.o
      boost::condition_error::condition_error(int, char const*) in gps.cpp.o
      boost::system::error_code::error_code() in gps.cpp.o
  "boost::system::generic_category()", referenced from:
      ___cxx_global_var_init1 in gps.cpp.o
      ___cxx_global_var_init2 in gps.cpp.o
  "boost::thread::join_noexcept()", referenced from:
      boost::thread::join() in gps.cpp.o
  "boost::thread::native_handle()", referenced from:
      boost::thread::get_id() const in gps.cpp.o
  "boost::thread::start_thread_noexcept()", referenced from:
      boost::thread::start_thread() in gps.cpp.o
  "boost::thread::detach()", referenced from:
      boost::thread::~thread() in gps.cpp.o
  "typeinfo for boost::detail::thread_data_base", referenced from:
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > > in gps.cpp.o
  "vtable for boost::detail::thread_data_base", referenced from:
      boost::detail::thread_data_base::thread_data_base() in gps.cpp.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [/tmp/ublox_ws/devel/lib/libublox_gps.dylib] Error 1
make[1]: *** [ublox_catkin/ublox_gps/CMakeFiles/ublox_gps.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed
```