1

我按照“Hacking the Kinect”第 15-16 页(Apress 2011)一书中给出的说明在我的系统(运行 Xubuntu 12.04 的 32 位 x86 机器)上安装RGB Demo(版本 0.5.0)。

我下载并提取了演示的源代码,并按照书中的描述安装了所需的包:

libboost-all-dev、libusb-1.0-0-dev、libqt4-dev、libgtk2.0-dev、cmake、ccmake(来自 cmake-curses-gui)、libglew1.5-dev、libgsl0-dev、freeglut3-dev(不是书中所述的 libglut3-dev)和 libxmu-dev。

笔记本打字错误: libgs10-dev 实际上应该是 libgsl0-dev。

在源代码的根目录上运行 ccmake 时,我设置了本书给出的标志:

  • BUILD_EXAMPLES ON
  • BUILD_FAKENECT ON
  • BUILD_SHARED_LIBS ON
  • NESTK_USE_FREENECT ON
  • NESTK_USE_OPENNI关闭
  • NESTK_USE_PCL关闭

并将所有其他标志保留为默认值。

然后我继续配置和生成没有问题,但是在随后运行 make 时,我遇到了以下错误:

[ 35%] Building CXX object nestk/deps/opencv/modules/core/CMakeFiles/opencv_core.dir/src/out.o
In file included from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/precomp.hpp:55:0,
                 from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/out.cpp:43:
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:354:13: error: ‘ptrdiff_t’ does not name a type
In file included from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/precomp.hpp:55:0,
                 from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/out.cpp:43:
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2600:13: error: ‘ptrdiff_t’ does not name a type
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2623:24: error: declaration of ‘operator[]’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2623:22: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2623:34: error: expected ‘)’ before ‘i’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2626:36: error: declaration of ‘operator+=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2626:32: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2626:46: error: expected ‘)’ before ‘ofs’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2628:36: error: declaration of ‘operator-=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2628:32: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2628:46: error: expected ‘)’ before ‘ofs’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2641:5: error: ‘ptrdiff_t’ does not name a type
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2642:15: error: ‘ptrdiff_t’ has not been declared
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2661:13: error: ‘ptrdiff_t’ does not name a type
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2684:21: error: ‘ptrdiff_t’ has not been declared
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2687:37: error: declaration of ‘operator+=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2687:33: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2687:47: error: expected ‘)’ before ‘ofs’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2689:37: error: declaration of ‘operator-=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2689:33: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2689:47: error: expected ‘)’ before ‘ofs’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2733:22: error: declaration of ‘operator[]’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2733:20: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2733:32: error: expected ‘)’ before ‘i’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2736:32: error: declaration of ‘operator+=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2736:28: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2736:42: error: expected ‘)’ before ‘ofs’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2738:32: error: declaration of ‘operator-=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2738:28: error: expected ‘;’ at end of member declaration
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:2738:42: error: expected ‘)’ before ‘ofs’
In file included from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:4047:0,
                 from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/precomp.hpp:55,
                 from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/out.cpp:43:
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/operations.hpp:2822:15: error: ‘ptrdiff_t’ does not name a type
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/operations.hpp:3383:31: error: ‘ptrdiff_t’ does not name a type
In file included from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/core.hpp:4048:0,
                 from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/precomp.hpp:55,
                 from /home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/out.cpp:43:
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/mat.hpp:1629:57: error: declaration of ‘operator+=’ as non-function
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/mat.hpp:1629:57: error: ‘ptrdiff_t’ was not declared in this scope
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/include/opencv2/core/mat.hpp:1629:57: note: suggested alternatives:
/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28: note:   ‘std::ptrdiff_t’
/usr/include/c++/4.6/i686-linux-gnu/./bits/c++config.h:156:28: note:   ‘std::ptrdiff_t’
/home/josh/dev/kinect/RGBDemo-0.5.0/nestk/deps/opencv/modules/core/src/out.cpp:305:1: error: expected ‘}’ at end of input
make[2]: *** [nestk/deps/opencv/modules/core/CMakeFiles/opencv_core.dir/src/out.o] Error 1
make[1]: *** [nestk/deps/opencv/modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

是什么导致了这些错误,我该如何解决?

4

2 回答 2

2

会不会像opencv/modules/core/include/opencv2/core/core.hpp失踪一样简单#include <stddef.h>

于 2012-05-01T18:45:56.737 回答
0

是的,只需编辑core.hpp /home/linaro/Downloads/RGBDemo-0.4.0-Source/nestk/deps/opencv/modules/core/include/opencv2/core并添加该行

#include <stddef.h
于 2016-02-17T09:14:18.120 回答