Как правильно импортировать freenect2 с помощью cmake?

Я должен использовать kinect2 (Ubuntu 16.04 LTS). Итак, я установил несколько вещей:

Когда я использовал первый kinect, я мог без проблем импортировать инструменты libfreenect, но теперь с libfreenect!

Вы можете найти мой CMake Вот. Нет никаких проблем с другими библиотеками в CMake.

Что я изменил для установки libfreenect2:

  • Я клонирую репозиторий в свою папку ~ / sofware. (Я положил все мои библиотеки здесь)

  • Вместо

    cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
    

    я сделал

    cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/software/libfreenect2/freenect2
    

Со мной Cmake когда я собираю, я получил это:

CMakeFiles/Kinect2CaptureYM.dir/app/Kinect2CaptureYM.cpp.o: In function `Kinect2CaptureYM::Kinect2CaptureYM()':
Kinect2CaptureYM.cpp:(.text._ZN16Kinect2CaptureYMC1Ev[_ZN16Kinect2CaptureYMC1Ev]+0x108): undefined reference to `libfreenect2::Freenect2::Freenect2(void*)'
Kinect2CaptureYM.cpp:(.text._ZN16Kinect2CaptureYMC1Ev[_ZN16Kinect2CaptureYMC1Ev]+0x427): undefined reference to `libfreenect2::Freenect2::~Freenect2()'
CMakeFiles/Kinect2CaptureYM.dir/app/Kinect2CaptureYM.cpp.o: In function `Kinect2CaptureYM::~Kinect2CaptureYM()':
Kinect2CaptureYM.cpp:(.text._ZN16Kinect2CaptureYMD1Ev[_ZN16Kinect2CaptureYMD1Ev]+0xb8): undefined reference to `libfreenect2::Freenect2::~Freenect2()'
collect2: error: ld returned 1 exit status
CMakeFiles/Kinect2CaptureYM.dir/build.make:156: recipe for target 'Kinect2CaptureYM' failed
make[2]: *** [Kinect2CaptureYM] Error 1
CMakeFiles/Makefile2:190: recipe for target 'CMakeFiles/Kinect2CaptureYM.dir/all' failed
make[1]: *** [CMakeFiles/Kinect2CaptureYM.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Так что мой make не может связать библиотеку freenec2. Но я не понимаю почему, когда я помещаю это в мой make-файл:

FIND_PACKAGE(freenect2 REQUIRED)
LIST(APPEND INCLUDE_DIRS ${FREENECT2_INCLUDE_DIRS})
LIST(APPEND LIBRARIES    ${FREENECT2_LIBRARIES})

Кто-нибудь знает, как правильно связать это? Я действительно застрял из-за этого: /

Если вам нужно что-то еще, просто спросите, спасибо!

PS: самые важные вещи в моем коде (достаточно, чтобы сбить make):

  • включают в себя: #include <libfreenect2/libfreenect2.hpp>
  • декларация: libfreenect2::Freenect2 freenect2;

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]