0

我必须使用 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 lib。但我不明白为什么我把它放在我的makefile中:

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;
4

0 回答 0