Kinect开发教程七:OpenNI2自带范例程序的编译执行

研究自带的范例程序是学习的重要途径之一,在编译与配置OpenNI2的范例程序时,并没有安装时候那么顺利,在这里分享一下经验。

      安装版本OpenNI 2.1 beta,开发环境VS2008。
      依照上一篇教程六安装成功后,会有以下目录:
      范例程序主目录:
      OpenNI2\Samples\
      可执行文件:
      OpenNI2\Samples\Bin
      公共头文件:
      OpenNI2\Samples\Common
      GL库:
      OpenNI2\Samples\GL
      如果有VS2010应该能直接打开项目。

新建VS范例工程
     在较早的VS版本运行,可以参考以下步骤来新建一个范例工程:
     【1】新建C/C++工程
     【2】配置工程属性(参考教程六)
     【3】拷贝源代码,这里小斤拷贝了SimpleViewer的源码到工程目录。
     【4】拷贝公共头文件:\OpenNI2\Samples\Common\OniSampleUtilities.h到工程目录。
     如下图
 
GLUT库
     【1】对于OpenNI2\Samples\GL目录下的头文件目录gl与glh
     复制到以下文件夹:
      Visual Studio 6:X:\Program Files\Microsoft Visual Studio\VC98\Include\GL
      Visual Studio .net 2003:X:\Program Files\Microsoft Visual Studio NET 2003\Vc7\PlatformSDK\Include\gl
      Visual Studio 2005:X:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl
      Visual Studio 2008:X:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl

     【2】对于OpenNI2\Samples\GL目录下的*.lib复制到以下文件夹:
      Visual Studio 6:X:\Program Files\Microsoft Visual Studio\VC98\Lib
      Visual Studio .net 2003:X:\Program Files\Microsoft Visual Studio NET 2003\Vc7\PlatformSDK\Lib
      Visual Studio 2005:X:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib
      Visual Studio 2008:X:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

     【3】OpenNI2\Samples\GL目录下的*.dll复制到工程目录或者C:\Windows\system中。

一些小坑
     【1】在小斤的工作环境VS2008中,遇到编译错误:
     error C2146: syntax error : missing ';' before identifier 'usbVendorId'
     error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
     error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
     error C2146: syntax error : missing ';' before identifier 'usbProductId'
     error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

     在OpenNI2\Include\Win32\OniPlatformWin32.h中发现
[cpp]  view plain copy
  1. //---------------------------------------------------------------------------  
  2. // Includes  
  3. //---------------------------------------------------------------------------  
  4. #include <windows.h>  
  5. #include <stdlib.h>  
  6. #include <stdio.h>  
  7. #include <malloc.h>  
  8. #include <io.h>  
  9. #include <time.h>  
  10. #include <assert.h>  
  11. #include <float.h>  
  12. #include <crtdbg.h>  
  13. #if _MSC_VER < 1600 // Visual Studio 2008 and older doesn't have stdint.h...  
  14. typedef __int64 int64_t;  
  15. typedef unsigned __int64 uint64_t;  
  16. #else  
  17. #include <stdint.h>  
  18. #endif  

     该错误由于uint32_t与uint8_t未定义造成,加入定义后编译成功。
[cpp]  view plain copy
  1. #if _MSC_VER < 1600 // Visual Studio 2008 and older doesn't have stdint.h...  
  2. typedef __int64 int64_t;  
  3. typedef unsigned __int64 uint64_t;  
  4. typedef unsigned __int32 uint32_t;  
  5. typedef unsigned __int16 uint16_t;  
  6. typedef unsigned __int8 uint8_t;  
  7. #else  
  8. #include <stdint.h>  
  9. #endif  

     【2】在上一篇教程中,小斤也说过,要拷贝\OpenNI2\Redist目录下的所有文件到VS的工作目录(如果不通过VS启动,则拷贝到程序执行目录)
     否则将会看到以下错误:

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值