Fix compile error with Boost 1.58 Serialization and GTSAM3.2.1

#264 Open
Repository
Branch
fix/boost158gtsam3
Repository
Branch
release/3.2.1

Bitbucket cannot automatically merge this request.

The commits that make up this pull request have been removed.

Bitbucket cannot automatically merge this request due to conflicts.

Review the conflicts on the Overview tab. You can then either decline the request or merge it manually on your local system using the following commands:

git checkout release/3.2.1
git merge --no-ff -m 'Merged in fix/boost158gtsam3 (pull request #264)' remotes/origin/fix/boost158gtsam3
Author
  1. Lachlan Toohey
Reviewers
Description

This enables building gtsam-3.2.1 on Ubuntu 16.04

Closes #274

  • Issues #274: gtsam 3.2.1 with boost 1.5.8 new

Comments (20)

    1. Chris Beall

      Don't think so. Link worked fine for me. Here's the error:

      [ 63%] Building CXX object examples/CMakeFiles/Pose3SLAMExample_initializePose3Chordal.dir/Pose3SLAMExample_initializePose3Chordal.cpp.o
      /home/jenkins/jenkins_home/jobs/gtsam-ubuntu-pullrequest/workspace/BUILD_OPT/Release/DEPRECATED_OPT/ALLOW_DEPRECATED_SINCE_V4 OFF/MKL_OPT/MKL OFF/ROT_OPT/Rot3/TANGENT_PREINTEGRATION/TANGENT/TBB_OPT/TBB ON/TYPEDEF_POINTS_TO_VECTORS/TYPEDEF POINT OFF/build/wrap/gtsam/gtsam_wrapper.cpp: In function ‘void gtsamGaussianFactorGraph_eliminateMultifrontal_769(int, mxArray**, int, const mxArray**)’:
      /home/jenkins/jenkins_home/jobs/gtsam-ubuntu-pullrequest/workspace/BUILD_OPT/Release/DEPRECATED_OPT/ALLOW_DEPRECATED_SINCE_V4 OFF/MKL_OPT/MKL OFF/ROT_OPT/Rot3/TANGENT_PREINTEGRATION/TANGENT/TBB_OPT/TBB ON/TYPEDEF_POINTS_TO_VECTORS/TYPEDEF POINT OFF/build/wrap/gtsam/gtsam_wrapper.cpp:9536:57: error: ‘class boost::shared_ptr<gtsam::GaussianBayesTree>’ has no member named ‘clone’
         out[0] = wrap_shared_ptr(obj->eliminateMultifrontal().clone(),"gtsam.GaussianBayesTree", true);
                                                               ^
      
          1. Lachlan Toohey author

            It could be worth testing the 3.2.1 release to see if the issue affects it too. Perhaps there are defines/typedefs being used for these builds that clash with the older API?

  1. Martin Schuster

    Thanks for the patch to run gtsam3.2.1 with boost-1.58, they seem to work for me (no TBB, no MKL). In order for the tests to compile and run ("make check"), it is however necessary to add #include <boost/serialization/serialization.hpp> also to gtsam/base/tests/testFastContainers.cpp (unrelated to the Jenkins issue discussed above).