MIT-SPARK / Kimera-VIO

Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
BSD 2-Clause "Simplified" License
1.53k stars 416 forks source link

Kimera-VIO Build Error on Ubuntu 20.04 #208

Open umbnich opened 1 year ago

umbnich commented 1 year ago

Description: Building Kimera-VIO in Ubuntu 20.04 (WSL2)

Command:

`sudo make -j4 install` 

Console output:

[  2%] Built target gtest
[ 63%] Built target kimera_vio
[ 63%] Linking CXX executable stereoVIOEuroc
[ 64%] Building CXX object CMakeFiles/testKimeraVIO.dir/tests/testTracker.cpp.o
/usr/bin/ld: warning: libopencv_core.so.4.2, needed by /usr/local/lib/libDBoW2.so, may conflict with libopencv_core.so.407
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::close()'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCameraPosition::WCameraPosition(cv::Matx<double, 3, 3> const&, cv::_InputArray const&, double, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::setOffScreenRendering()'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::wasStopped() const'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::removeWidget(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WArrow::WArrow(cv::Point3_<double> const&, cv::Point3_<double> const&, double, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Widget3D::updatePose(cv::Affine3<double> const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCloud::WCloud(cv::_InputArray const&, cv::_InputArray const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::showWidget(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::viz::Widget const&, cv::Affine3<double> const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WTrajectoryFrustums::WTrajectoryFrustums(cv::_InputArray const&, cv::Matx<double, 3, 3> const&, double, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::setFullScreen(bool)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCloud::WCloud(cv::_InputArray const&, cv::viz::Color const&)'
/usr/bin/ld: /home/umbnich/Kimera-RPGO/build/libKimeraRPGO.so: undefined reference to `gtsam::NoiseModelFactor::cloneWithNewNoiseModel(std::shared_ptr<gtsam::noiseModel::Base>) const'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCylinder::WCylinder(cv::Point3_<double> const&, cv::Point3_<double> const&, double, int, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::setWidgetPose(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Affine3<double> const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCube::WCube(cv::Point3_<double> const&, cv::Point3_<double> const&, bool, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WMesh::WMesh(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCameraPosition::WCameraPosition(cv::Matx<double, 3, 3> const&, double, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::spinOnce(int, bool)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::saveScreenshot(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Mesh::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Widget::setRenderingProperty(int, double)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WTrajectory::WTrajectory(cv::_InputArray const&, int, double, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::Viz3d(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCoordinateSystem::WCoordinateSystem(double)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::getViewerPose()'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Widget::~Widget()'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::getWindowSize() const'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::registerKeyboardCallback(void (*)(cv::viz::KeyboardEvent const&, void*), void*)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Widget::operator=(cv::viz::Widget const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WMesh::WMesh(cv::viz::Mesh const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WLine::WLine(cv::Point3_<double> const&, cv::Point3_<double> const&, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Widget3D::getPose() const'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::~Viz3d()'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WPlane::WPlane(cv::Point3_<double> const&, cv::Vec<double, 3> const&, cv::Vec<double, 3> const&, cv::Size_<double> const&, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WText3D::WText3D(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Point3_<double> const&, double, bool, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Widget3D::setPose(cv::Affine3<double> const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WSphere::WSphere(cv::Point3_<double> const&, double, int, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::setBackgroundColor(cv::viz::Color const&, cv::viz::Color const&)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::setGlobalWarnings(bool)'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::Viz3d::spin()'
/usr/bin/ld: libkimera_vio.so: undefined reference to `cv::viz::WCloud::WCloud(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&)'
/usr/bin/ld: /home/umbnich/Kimera-RPGO/build/libKimeraRPGO.so: undefined reference to `gtsam::NonlinearFactor::error(gtsam::HybridValues const&) const'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/stereoVIOEuroc.dir/build.make:148: stereoVIOEuroc] Error 1
make[1]: *** [CMakeFiles/Makefile2:1441: CMakeFiles/stereoVIOEuroc.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/umbnich/Kimera-VIO/tests/testTracker.cpp: In member function ‘void TestTracker::InitializeData()’:
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:130:21: error: parse error in template argument list
  130 |     tracker_ = VIO::make_unique<Tracker>(
      |                     ^~~~~~~~~~~~~~~~~~~~
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:131:65: error: no matching function for call to ‘make_unique<<expression error> >(VIO::FrontendParams&, const ConstPtr&)’
  131 |         tracker_params_, stereo_camera_->getOriginalLeftCamera());
      |                                                                 ^
In file included from /home/umbnich/Kimera-VIO/include/kimera-vio/utils/UtilsOpenCV.h:34,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/frontend/CameraParams.h:27,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/frontend/Camera.h:25,
                 from /home/umbnich/Kimera-VIO/tests/testTracker.cpp:27:
/home/umbnich/Kimera-VIO/include/kimera-vio/common/vio_types.h:85:20: note: candidate: ‘template<class T, class ... Args> std::unique_ptr<_Tp> VIO::make_unique(Args&& ...)’
   85 | std::unique_ptr<T> make_unique(Args&&... args) {
      |                    ^~~~~~~~~~~
/home/umbnich/Kimera-VIO/include/kimera-vio/common/vio_types.h:85:20: note:   template argument deduction/substitution failed:
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:131:65: error: template argument 1 is invalid
  131 |         tracker_params_, stereo_camera_->getOriginalLeftCamera());
      |                                                                 ^
/home/umbnich/Kimera-VIO/tests/testTracker.cpp: In member function ‘virtual void TestTracker_geometricOutlierRejectionMono_Test::TestBody()’:
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:644:7: error: reference to ‘Tracker’ is ambiguous
  644 |       Tracker tracker(trackerParams, stereo_camera_->getOriginalLeftCamera());
      |       ^~~~~~~
In file included from /usr/local/include/opencv4/opencv2/video.hpp:56,
                 from /usr/local/include/opencv4/opencv2/opencv.hpp:89,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/utils/UtilsOpenCV.h:26,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/frontend/CameraParams.h:27,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/frontend/Camera.h:25,
                 from /home/umbnich/Kimera-VIO/tests/testTracker.cpp:27:
/usr/local/include/opencv4/opencv2/video/tracking.hpp:713:20: note: candidates are: ‘class cv::Tracker’
  713 | class CV_EXPORTS_W Tracker
      |                    ^~~~~~~
In file included from /home/umbnich/Kimera-VIO/tests/testTracker.cpp:33:
/home/umbnich/Kimera-VIO/include/kimera-vio/frontend/Tracker.h:45:7: note:                 ‘class VIO::Tracker’
   45 | class Tracker {
      |       ^~~~~~~
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:648:11: error: ‘tracker’ was not declared in this scope; did you mean ‘tracker_’?
  648 |           tracker.geometricOutlierRejectionMono(ref_frame.get(),
      |           ^~~~~~~
      |           tracker_
/home/umbnich/Kimera-VIO/tests/testTracker.cpp: In member function ‘virtual void TestTracker_geometricOutlierRejectionStereo_Test::TestBody()’:
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:838:7: error: reference to ‘Tracker’ is ambiguous
  838 |       Tracker tracker(trackerParams, stereo_camera_->getOriginalLeftCamera());
      |       ^~~~~~~
In file included from /usr/local/include/opencv4/opencv2/video.hpp:56,
                 from /usr/local/include/opencv4/opencv2/opencv.hpp:89,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/utils/UtilsOpenCV.h:26,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/frontend/CameraParams.h:27,
                 from /home/umbnich/Kimera-VIO/include/kimera-vio/frontend/Camera.h:25,
                 from /home/umbnich/Kimera-VIO/tests/testTracker.cpp:27:
/usr/local/include/opencv4/opencv2/video/tracking.hpp:713:20: note: candidates are: ‘class cv::Tracker’
  713 | class CV_EXPORTS_W Tracker
      |                    ^~~~~~~
In file included from /home/umbnich/Kimera-VIO/tests/testTracker.cpp:33:
/home/umbnich/Kimera-VIO/include/kimera-vio/frontend/Tracker.h:45:7: note:                 ‘class VIO::Tracker’
   45 | class Tracker {
      |       ^~~~~~~
/home/umbnich/Kimera-VIO/tests/testTracker.cpp:842:11: error: ‘tracker’ was not declared in this scope; did you mean ‘tracker_’?
  842 |           tracker.geometricOutlierRejectionStereo(*ref_stereo_frame,
      |           ^~~~~~~
      |           tracker_
make[2]: *** [CMakeFiles/testKimeraVIO.dir/build.make:479: CMakeFiles/testKimeraVIO.dir/tests/testTracker.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:955: CMakeFiles/testKimeraVIO.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Additional files:

Please give also the following information: