GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices.
I cannot install matlab wrapper of gtsam due to the following error:
/home/zbs/GALBOT/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:28797:89: required from here /usr/include/c++/9/ext/new_allocator.h:146:4: error: no matching function for call to ‘gtsam::GaussianConditional::GaussianConditional(std::shared_ptr<gtsam::GaussianConditional>&)’ 146 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
-- GTSAM is a shared library due to GTSAM_FORCE_SHARED_LIB
-- GTSAM_POSE3_EXPMAP=ON, enabling GTSAM_ROT3_EXPMAP as well
-- Found Eigen version: 3.4.0
-- checking for thread-local storage - found
-- Could NOT find MKL (missing: MKL_INCLUDE_DIR MKL_LIBRARIES)
-- Building 3rdparty
-- Could NOT find GeographicLib (missing: GeographicLib_LIBRARY_DIRS GeographicLib_LIBRARIES GeographicLib_INCLUDE_DIRS)
-- Building base
-- Building basis
-- Building geometry
-- Building inference
-- Building symbolic
-- Building discrete
-- Building hybrid
-- Building linear
-- Building nonlinear
-- Building sam
-- Building sfm
-- Building slam
-- Building navigation
-- GTSAM Version: 4.3a0
-- Install prefix: /usr/local
-- Building GTSAM - as a SHARED library
-- Building base_unstable
-- Building geometry_unstable
-- Building linear_unstable
-- Building discrete_unstable
-- Building dynamics_unstable
-- Building nonlinear_unstable
-- Building slam_unstable
-- Building partition_unstable
-- GTSAM_UNSTABLE Version: 4.3a0
-- Install prefix: /usr/local
-- gtwrap Package config : /usr/local/lib/cmake/gtwrap
-- gtwrap version : 1.0
-- gtwrap CMake path : /usr/local/lib/cmake/gtwrap
-- gtwrap library path : /usr/local/lib/gtwrap
-- gtwrap binary path : /usr/local/bin/gtwrap
-- gtwrap header path : /usr/local/include/gtwrap
-- Checking Python Version
-- Setting Python version for wrapper
-- Building wrap module gtsam
-- Installing Matlab Toolbox to /usr/local/gtsam_toolbox
-- Wrote /home/zbs/GALBOT/gtsam/build/GTSAMConfig.cmake
-- Wrote /home/zbs/GALBOT/gtsam/build/GTSAM_UNSTABLEConfig.cmake
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- ===============================================================
-- ================ Configuration Options ======================
-- CMAKE_CXX_COMPILER_ID type : GNU
-- CMAKE_CXX_COMPILER_VERSION : 9.4.0
-- CMake version : 3.16.3
-- CMake generator : Unix Makefiles
-- CMake build tool : /usr/bin/make
-- Build flags
-- Build Tests : Enabled
-- Build examples with 'make all' : Enabled
-- Build timing scripts with 'make all' : Disabled
-- Build shared GTSAM libraries : Enabled
-- Put build type in library name : Enabled
-- Build libgtsam_unstable : Enabled
-- Build GTSAM unstable Python : Enabled
-- Build MATLAB Toolbox for unstable : Disabled
-- Build for native architecture : Disabled
-- Build type : Release
-- C compilation flags : -O3 -DNDEBUG
-- C++ compilation flags : -O3 -DNDEBUG
-- Enable Boost serialization : ON
-- GTSAM_COMPILE_FEATURES_PUBLIC : cxx_std_17
-- GTSAM_COMPILE_OPTIONS_PUBLIC :
-- GTSAM_COMPILE_DEFINITIONS_PUBLIC :
-- GTSAM_COMPILE_OPTIONS_PUBLIC_RELEASE :
-- GTSAM_COMPILE_DEFINITIONS_PUBLIC_RELEASE :
-- Use System Eigen : OFF (Using version: 3.4.0)
-- Use System Metis : OFF
-- Using Boost version : 1.71.0
-- Use Intel TBB : TBB not found
-- Eigen will use MKL : MKL not found
-- Eigen will use MKL and OpenMP : OpenMP found but GTSAM_WITH_EIGEN_MKL is disabled
-- Default allocator : STL
-- Cheirality exceptions enabled : YES
-- Build with ccache : No
-- Packaging flags
-- CPack Source Generator : TGZ
-- CPack Generator : TGZ
-- GTSAM flags
-- Quaternions as default Rot3 : Disabled
-- Runtime consistency checking : Disabled
-- Build with Memory Sanitizer : Disabled
-- Rot3 retract is full ExpMap : Enabled
-- Pose3 retract is full ExpMap : Enabled
-- Enable branch merging in DecisionTree : Enabled
-- Allow features deprecated in GTSAM 4.3 : Enabled
-- Metis-based Nested Dissection : Enabled
-- Use tangent-space preintegration : Enabled
-- MATLAB toolbox flags
-- Install MATLAB toolbox : Enabled
-- MATLAB root : /home/zbs/MATLAB
-- MEX binary : /home/zbs/MATLAB/bin/glnxa64/mex
-- Python toolbox flags
-- Build Python module with pybind : Enabled
-- Python version : 3.8.10
-- ===============================================================
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zbs/GALBOT/gtsam/build
Description
I cannot install matlab wrapper of gtsam due to the following error:
/home/zbs/GALBOT/gtsam/build/wrap/gtsam/gtsam_wrapper.cpp:28797:89: required from here /usr/include/c++/9/ext/new_allocator.h:146:4: error: no matching function for call to ‘gtsam::GaussianConditional::GaussianConditional(std::shared_ptr<gtsam::GaussianConditional>&)’ 146 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
Steps to reproduce
cmake -DGTSAM_INSTALL_MATLAB_TOOLBOX:=ON -DMatlab_ROOT_DIR:=$Matlab_INCLUDE_DIRS -DGTSAM_ALLOW_DEPRECATED_SINCE_V42:=OFF ..
make -j 15 check
sudo make install
Expected behavior
Environment
OS: Ubuntu 20.04 GCC: 9.4.0 CMAKE: 3.16.3 Boost: 1.71 Python: 3.8.10 Matlab: 2021b GTSAM: develop branch CMake GUI output:
Thank you for your help.
Additional information