Я должен использовать kinect2 (Ubuntu 16.04 LTS). Итак, я установил несколько вещей:
OpenNi (https://github.com/OpenNI/OpenNI)
OpenNi2 (https://github.com/occipital/openni2
libfreenect, (потому что я использовал первый kinect раньше) (https://github.com/OpenKinect/libfreenect)
libfreenect2 (https://github.com/OpenKinect/libfreenect2)
PrimeSese (с соответствующей частью https://www.icyphy.org/accessors/wiki/Main/InstallingThePrimeSenseKinectSensorOnUbuntu)
OpenCV (https://github.com/opencv/opencv)
Когда я использовал первый 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;
Задача ещё не решена.
Других решений пока нет …