2012-05-01 12 views
1

我遵循"Hacking the Kinect" pages 15-16 (Apress 2011)書中的說明在我的系統(運行Xubuntu 12.04的32位x86機器)上安裝RGB Demo(版本0.5.0)。OpenKinect:無法構建RGBDemo

我下載並提取演示的來源和書內說明安裝所需的軟件包:

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 OFF
  • NESTK_USE_PCL OFF

,並保留其他所有標誌爲默認值。

我再繼續配置並沒有問題產生,但在隨後運行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 

是什麼原因造成這些錯誤,我該如何解決這些問題?

回答

2

難道這就像opencv/modules/core/include/opencv2/core/core.hpp失蹤#include <stddef.h>

0

呀只需編輯core.hpp /home/linaro/Downloads/RGBDemo-0.4.0-Source/nestk/deps/opencv/modules/core/include/opencv2/core並添加行

#include <stddef.h