cartographer-project / cartographer

Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Apache License 2.0
7.03k stars 2.24k forks source link

Problem Compiling Cartographer ROS with catkin_make_isolated --install --use-ninja #1937

Open Omiclous opened 8 months ago

Omiclous commented 8 months ago

Im tried to follow this guide: https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html

But when I run this line: catkin_make_isolated --install --use-ninja

I get this error:

Base path: /home/omi/catkin2_ws
Source space: /home/omi/catkin2_ws/src
Build space: /home/omi/catkin2_ws/build_isolated
Devel space: /home/omi/catkin2_ws/devel_isolated
Install space: /home/omi/catkin2_ws/install_isolated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~  traversing 4 packages in topological order:
~~  - cartographer (plain cmake)
~~  - cartographer_ros_msgs
~~  - cartographer_ros
~~  - cartographer_rviz
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The packages or cmake arguments have changed, forcing cmake invocation

==> Processing plain cmake package: 'cartographer'
==> Creating build directory: 'build_isolated/cartographer/install'
==> cmake /home/omi/catkin2_ws/src/cartographer -DCMAKE_INSTALL_PREFIX=/home/omi/catkin2_ws/install_isolated -G Ninja in '/home/omi/catkin2_ws/build_isolated/cartographer/install'
-- The C compiler identification is GNU 10.5.0
-- The CXX compiler identification is GNU 10.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type: Release
Files /home/omi/catkin2_ws/build_isolated/cartographer/install/AllFiles.cmake and - differ
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found GMock: /usr/lib/x86_64-linux-gnu/libgmock_main.a;/usr/lib/x86_64-linux-gnu/libgmock.a;/usr/lib/x86_64-linux-gnu/libgtest.a;-lpthread  
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: iostreams 
-- Found CXSparse: /usr/include/suitesparse (found suitable version "3.2.0", minimum required is "3.2.0") 
-- Found BLAS: /usr/lib/x86_64-linux-gnu/libf77blas.so;/usr/lib/x86_64-linux-gnu/libatlas.so  
-- Found AMD headers in: /usr/include/suitesparse
-- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so
-- Found CAMD headers in: /usr/include/suitesparse
-- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so
-- Found CCOLAMD headers in: /usr/include/suitesparse
-- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so
-- Found CHOLMOD headers in: /usr/include/suitesparse
-- Found CHOLMOD library: /usr/lib/x86_64-linux-gnu/libcholmod.so
-- Found COLAMD headers in: /usr/include/suitesparse
-- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so
-- Found SPQR headers in: /usr/include/suitesparse
-- Found SPQR library: /usr/lib/x86_64-linux-gnu/libspqr.so
-- Found Config headers in: /usr/include/suitesparse
-- Found Config library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so
-- Found Intel Thread Building Blocks (TBB) library (2020.1 / 11101) include location: . Assuming SuiteSparseQR was compiled with TBB.
-- Looking for shm_open in rt
-- Looking for shm_open in rt - found
-- Adding librt to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
-- Could NOT find METIS (missing: METIS_INCLUDE_DIR METIS_LIBRARY) 
-- Found SuiteSparse: /usr/include/suitesparse (found suitable version "5.7.1", minimum required is "5.7.1") found components: AMD CAMD CCOLAMD CHOLMOD COLAMD SPQR Config 
-- Found required Ceres dependency: Eigen version 3.3.7 in /usr/lib/cmake/eigen3
-- Found required Ceres dependency: glog
-- Found required Ceres dependency: gflags
-- Found Ceres version: 2.1.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, Multithreading]
-- Found Lua: /usr/lib/x86_64-linux-gnu/liblua5.2.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "5.2.4") 
-- Found Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found suitable version "3.4.0", minimum required is "3.0.0") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Checking for one of the modules 'cairo>=1.12.16'
-- Found Sphinx: /usr/bin/sphinx-build  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/omi/catkin2_ws/build_isolated/cartographer/install
==> ninja -j12 -l12 in '/home/omi/catkin2_ws/build_isolated/cartographer/install'
[45/381] Building documentation.
Running Sphinx v1.8.5
making output directory...
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 6 source files that are out of date
updating environment: 6 added, 0 changed, 0 removed
reading sources... [ 16%] configuration
reading sources... [ 33%] cost_functions
reading sources... [ 50%] evaluation
reading sources... [ 66%] index
reading sources... [ 83%] pbstream_migration
reading sources... [100%] terminology

looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 16%] configuration
writing output... [ 33%] cost_functions
writing output... [ 50%] evaluation
writing output... [ 66%] index
writing output... [ 83%] pbstream_migration
writing output... [100%] terminology

generating indices... genindex
writing additional pages... search
copying images... [ 50%] autogenerate_groundtruth.png
copying images... [100%] high_level_system_overview.png

copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded.

The HTML pages are in html.
[145/381] Building CXX object CMakeFiles/cartographer.dir/cartographer/mapping/internal/3d/scan_matching/ceres_scan_matcher_3d.cc.o
/home/omi/catkin2_ws/src/cartographer/cartographer/mapping/internal/3d/scan_matching/ceres_scan_matcher_3d.cc: In member function ‘void cartographer::mapping::scan_matching::CeresScanMatcher3D::Match(const Vector3d&, const Rigid3d&, const std::vector<cartographer::mapping::scan_matching::PointCloudAndHybridGridsPointers>&, cartographer::transform::Rigid3d*, ceres::Solver::Summary*) const’:
/home/omi/catkin2_ws/src/cartographer/cartographer/mapping/internal/3d/scan_matching/ceres_scan_matcher_3d.cc:101:36: warning: ‘LocalParameterization’ is deprecated: LocalParameterizations will be removed from the Ceres Solver API in version 2.2.0. Use Manifolds instead. [-Wdeprecated-declarations]

[242/381] Linking CXX executable cartographer_pbstream
FAILED: cartographer_pbstream 
: && /usr/bin/c++  -O3 -DNDEBUG  -rdynamic CMakeFiles/cartographer_pbstream.dir/cartographer/io/pbstream_main.cc.o  -o cartographer_pbstream  -Wl,-rpath,/usr/local/lib:  libcartographer.a  /usr/local/lib/libceres.a  -lglog  /usr/lib/x86_64-linux-gnu/libspqr.so  /usr/lib/x86_64-linux-gnu/libcholmod.so  /usr/lib/x86_64-linux-gnu/libamd.so  /usr/lib/x86_64-linux-gnu/libcamd.so  /usr/lib/x86_64-linux-gnu/libccolamd.so  /usr/lib/x86_64-linux-gnu/libcolamd.so  /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so  -lrt  /usr/lib/x86_64-linux-gnu/libtbb.so.2  /usr/lib/x86_64-linux-gnu/libcxsparse.so  -llapack  -lf77blas  -latlas  -llua5.2  -lm  /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.71.0  -lglog  /usr/lib/x86_64-linux-gnu/libgflags.so.2.2.2  -lcairo  /usr/local/lib/libprotobuf.so  /usr/local/lib/libabsl_leak_check.a  /usr/local/lib/libabsl_cord.a  /usr/local/lib/libabsl_cordz_info.a  /usr/local/lib/libabsl_cord_internal.a  /usr/local/lib/libabsl_cordz_functions.a  /usr/local/lib/libabsl_cordz_handle.a  /usr/local/lib/libabsl_hash.a  /usr/local/lib/libabsl_city.a  /usr/local/lib/libabsl_bad_variant_access.a  /usr/local/lib/libabsl_low_level_hash.a  /usr/local/lib/libabsl_raw_hash_set.a  /usr/local/lib/libabsl_bad_optional_access.a  /usr/local/lib/libabsl_hashtablez_sampler.a  /usr/local/lib/libabsl_exponential_biased.a  /usr/local/lib/libabsl_str_format_internal.a  /usr/local/lib/libabsl_synchronization.a  /usr/local/lib/libabsl_stacktrace.a  /usr/local/lib/libabsl_graphcycles_internal.a  /usr/local/lib/libabsl_symbolize.a  /usr/local/lib/libabsl_malloc_internal.a  /usr/local/lib/libabsl_debugging_internal.a  /usr/local/lib/libabsl_demangle_internal.a  /usr/local/lib/libabsl_time.a  /usr/local/lib/libabsl_strings.a  /usr/local/lib/libabsl_strings_internal.a  /usr/local/lib/libabsl_base.a  -lpthread  /usr/local/lib/libabsl_spinlock_wait.a  -lrt  /usr/local/lib/libabsl_throw_delegate.a  /usr/local/lib/libabsl_raw_logging_internal.a  /usr/local/lib/libabsl_log_severity.a  /usr/local/lib/libabsl_int128.a  /usr/local/lib/libabsl_civil_time.a  /usr/local/lib/libabsl_time_zone.a  -lpthread && :
/usr/bin/ld: libcartographer.a(serialization_format_migration.cc.o): in function `google::protobuf::RepeatedField<float>::Reserve(int)':

.

.
.
.
.
.
.
/usr/bin/ld: libcartographer.a(probability_grid_range_data_inserter_options_2d.pb.cc.o): in function `cartographer::mapping::proto::protobuf_cartographer_2fmapping_2fproto_2fprobability_5fgrid_5frange_5fdata_5finserter_5foptions_5f2d_2eproto::TableStruct::InitDefaultsImpl()':
probability_grid_range_data_inserter_options_2d.pb.cc:(.text+0x834): undefined reference to `google::protobuf::internal::OnShutdownDestroyMessage(void const*)'
/usr/bin/ld: libcartographer.a(probability_grid_range_data_inserter_options_2d.pb.cc.o): in function `void google::protobuf::Arena::Own<cartographer::mapping::proto::ProbabilityGridRangeDataInserterOptions2D>(cartographer::mapping::proto::ProbabilityGridRangeDataInserterOptions2D*)':
probability_grid_range_data_inserter_options_2d.pb.cc:(.text._ZN6google8protobuf5Arena3OwnIN12cartographer7mapping5proto41ProbabilityGridRangeDataInserterOptions2DEEEvPT_[_ZN6google8protobuf5Arena3OwnIN12cartographer7mapping5proto41ProbabilityGridRangeDataInserterOptions2DEEEvPT_]+0x11): undefined reference to `google::protobuf::internal::ArenaImpl::AddCleanup(void*, void (*)(void*))'
collect2: error: ld returned 1 exit status
[253/381] Building CXX object CMakeFiles/cartographer.mapping.internal.3d.scan...r/mapping/internal/3d/scan_matching/fast_correlative_scan_matcher_3d_test.cc.o
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer': 
  Command '['ninja', '-j12', '-l12']' returned non-zero exit status 1.

Reproduce this error by running:
==> cd /home/omi/catkin2_ws/build_isolated/cartographer && ninja -j12 -l12

additional info:

built on ubuntu 20.04
cmake version 3.16.3
ceres-solver version 2.10 
libprotoc 3.4.0
Eigen 3.3.7-2
angiewlz commented 8 months ago

Did you find a solution?