Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Omiclous opened this issue Oct 10, 2023 · 1 comment

Comments

@Omiclous
Copy link

Omiclous commented Oct 10, 2023

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
Copy link

Did you find a solution?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants