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

Kimera-VIO Build Error on Ubuntu 20.04 #208

Open
umbnich opened this issue Mar 22, 2023 · 0 comments
Open

Kimera-VIO Build Error on Ubuntu 20.04 #208

umbnich opened this issue Mar 22, 2023 · 0 comments

Comments

@umbnich
Copy link

umbnich commented Mar 22, 2023

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:

  • Kimera-VIO, latest branch
  • GTSAM version used: 4.1.1
  • OpenGV version used: latest
  • OpenCV version used: 3.4.2
  • Operating system and version: Ubuntu 20.04
  • Did you change the source code?
    Substituted Rot3()::Identity() with Rot3() and Pose3::Identity() with Pose3().
    Included opencv2/viz.hpp in different scripts
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

1 participant