Matlab wrapper fails to compile

Issue #233 resolved
Chris Beall created an issue

Error is newly introduced with pull request #134 due to changes in gtsam.h, and seems to be caused by redundant typedefs which in turn cause redundant instantiations through BOOST_CLASS_EXPORT_GUID. Commenting out the second typedef makes the problem disappear. SimpleCamera seems less semantically meaningful to me, so I'd kill that one instead, even if it breaks some backwards compatibility.

typedef gtsam::PinholeCamera<gtsam::Cal3_S2> SimpleCamera;
typedef gtsam::PinholeCamera<gtsam::Cal3_S2> PinholeCameraCal3_S2;

Error:

In file included from /home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:5:0:
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:204:1: error: redefinition of ‘struct boost::serialization::guid_defined<gtsam::PinholeCamera<gtsam::Cal3_S2> >’
 BOOST_CLASS_EXPORT_GUID(gtsam::PinholeCameraCal3_S2, "gtsamPinholeCameraCal3_S2");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:203:1: error: previous definition of ‘struct boost::serialization::guid_defined<gtsam::PinholeCamera<gtsam::Cal3_S2> >’
 BOOST_CLASS_EXPORT_GUID(gtsam::SimpleCamera, "gtsamSimpleCamera");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:204:1: error: redefinition of ‘const char* boost::serialization::guid() [with T = gtsam::PinholeCamera<gtsam::Cal3_S2>]’
 BOOST_CLASS_EXPORT_GUID(gtsam::PinholeCameraCal3_S2, "gtsamPinholeCameraCal3_S2");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:203:1: error: ‘const char* boost::serialization::guid() [with T = gtsam::PinholeCamera<gtsam::Cal3_S2>]’ previously declared here
 BOOST_CLASS_EXPORT_GUID(gtsam::SimpleCamera, "gtsamSimpleCamera");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:204:1: error: redefinition of ‘struct boost::archive::detail::extra_detail::init_guid<gtsam::PinholeCamera<gtsam::Cal3_S2> >’
 BOOST_CLASS_EXPORT_GUID(gtsam::PinholeCameraCal3_S2, "gtsamPinholeCameraCal3_S2");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:203:1: error: previous definition of ‘struct boost::archive::detail::extra_detail::init_guid<gtsam::PinholeCamera<gtsam::Cal3_S2> >’
 BOOST_CLASS_EXPORT_GUID(gtsam::SimpleCamera, "gtsamSimpleCamera");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:204:1: error: redefinition of ‘const boost::archive::detail::extra_detail::guid_initializer<gtsam::PinholeCamera<gtsam::Cal3_S2> >& boost::archive::detail::extra_detail::init_guid<gtsam::PinholeCamera<gtsam::Cal3_S2> >::g’
 BOOST_CLASS_EXPORT_GUID(gtsam::PinholeCameraCal3_S2, "gtsamPinholeCameraCal3_S2");
 ^
/home/cbeall3/git/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:203:1: error: ‘const boost::archive::detail::extra_detail::guid_initializer<gtsam::PinholeCamera<gtsam::Cal3_S2> >& boost::archive::detail::extra_detail::init_guid<gtsam::PinholeCamera<gtsam::Cal3_S2> >::g’ previously declared here
 BOOST_CLASS_EXPORT_GUID(gtsam::SimpleCamera, "gtsamSimpleCamera");
 ^

Comments (1)

  1. Log in to comment