DLR-RM / 3DObjectTracking

Algorithms and Publications on 3D Object Tracking
MIT License
624 stars 121 forks source link

Issues with configuration and when running run_pen_paper_demo.cpp #50

Open ApzSK opened 1 year ago

ApzSK commented 1 year ago

Hi, I've wanted to try out M3T tracking library, but i have an issue with setting this up. I can't properly run it on Windows or Linux(Ubuntu installed on WSL). I've chosen Linux(Ubuntu) for further steps due to issues with installation of libraries on Windows. WSL should not be a problem, the Ubuntu system behaves almost exactly as standard one, might be slower.

What I've done:

  1. Installed required tools and libraries (cmake, Eigen3, GLEW, GLFW, OpenCV 4 standard + contrib, doxygen).
  2. Used cmake(cli and/or gui) in .../3DObjectTracking/M3T
  3. Tried to use g++/gcc to run run_pen_paper_test_demo.cpp
  4. I get errors mentioning that it doesn't see eigen3 or opencv libraries
  5. I've added -I path/to/eigen3 -I paths/to/opencv/libs
  6. The script tries to compile, but i get a lot of errors probably with linking -undefined reference to {m3t::|cv::}

Expected result I don't need to specify more than 1 path to opencv libs (now I have to add -I path/to/lib for every single library used from OpenCV). The linking works properly, there are no compilation errors.

Current result I get errors like:

run_pen_paper_demo.cpp:(.text._ZN3m3t8DetectorD2Ev[_ZN3m3t8DetectorD5Ev]+0x13): undefined reference to `vtable for m3t::Detector'
/usr/bin/ld: /tmp/ccSJDzTS.o: in function `m3t::ManualDetector::~ManualDetector()':
run_pen_paper_demo.cpp:(.text._ZN3m3t14ManualDetectorD2Ev[_ZN3m3t14ManualDetectorD5Ev]+0x13): undefined reference to `vtable for m3t::ManualDetector'
/usr/bin/ld: /tmp/ccSJDzTS.o: in function `m3t::StaticDetector::~StaticDetector()':

What i also tried

  1. using make, make install, make clean in M3T folder
  2. reinstalling libraries on Linux

I'm not a day-to-day C++ developer so i might have overlooked something obvious. I'd appriciate any help/detailed guide how to properly set it up.