做项目需要用到kinect,导师要求尽量使用C++编写,而C++对kinect的支持并不好,花了一晚上加一上午查了很多资料,大都有细节性的问题,配置出来的环境出现过诸如“无法打开文件Kinect.lib”,“无可用信息,未为Kinect20.dll加载任何符号”,或者在运行时程序直接触发异常的情况。继续折腾了几个小时,弄好了,所以写一篇力争所有人都能看懂的详尽说明。
因为我手里目前只有kinect一代的硬件设备,在安装了kinectSDK2.0之后出现了kinect绿灯闪烁的情况,继续安装了kinectSDK1.8之后变为绿灯常亮,控制面板中可以发现名为Kinect for Windows Drivers v1.8的驱动程序,但是在SDK2.0的安装过程中安装界面有显示安装driver,所以猜测SDK2.0的driver并不支持一代的硬件设备,查了网上,发现并没有相关信息,所以等到后面有了二代设备后再做进一步的测试。
下面是我的设备等参数:
系统:Windows10 版本10.0.14393
处理器:Intel core i7 - 4710mq
显卡:NVIDIA GTX960M
内存:12G DDR3L
环境:VS 2017 Community KinectSDK1.8
硬件设备:Kinect一代
其他版本的操作系统,SDK,VS,或硬件设备配置可能不同,本文无法面面俱到,尽请谅解。
正文开始:
安装KinectSDKv1.8
直接同意许可条款,点击安装等待安装完成即可。
接着打开VS,创建一个win32控制台程序
选择好目录,点击确定
如图配置,单击完成。
单击新建项
点击添加即可。
接着放一段基于C++的测试代码,我使用的是这位博主的测试代码。
http://blog.csdn.net/feitianhu213/article/details/38780101
放进源文件之后我们会发现报错:无法打开源文件
(这里需要注明一下,kinectSDK1.8版本的头文件是NuiApi.h而kinectSDK2.0版本的头文件又是kinect.h,微软你搞毛啊,名字都不统一,之前在这里也卡了很久,傻兮兮的用着SDK2.0添加NuiApi.h死活都报错,后来在外网查到原因是命名不同)
接着重点来了
在VS窗口右侧,找到解决方案资源管理器(每个人的配置不一样也许会被隐藏,百度一下如何调出就好了),然后右键项目名,点击菜单最下方的属性
然后在弹出的属性页中选择配置属性->VC++目录->包含目录,点击右侧有字符串的地方,会弹出下箭头,然后点击编辑,如图所示
弹出页面里,点击红色叉叉左边的文件夹图标,会弹出一个空白框,点击框右边的带省略号按钮(图中被蓝色选中)
然后选择目录,具体路径可以查看图中地址栏,然后选中inc文件夹,点击选择文件夹
结果如图所示,最后单击确定即可
接下来添加库目录,操作方法和刚才添加包含目录相同,点击编辑
点击文件夹图标,再点有省略号的按钮
选中x86文件夹,单击选择文件夹,具体路径请查看截图中地址栏
完成之后的结果如图所示
点击确定,然后添加附加依赖项。依次进入链接器->输入->附加依赖项
如图所示,这里先把附加依赖项右边的所有内容复制一下,一会儿会用到。点击编辑。
在上方空白文本框中粘贴刚才所复制的内容,并在末尾输入Kinect10.dll,注意大小写,且字母K前用一个英文的分号隔开(注意这里不是Kinect.dll而是Kinect10.dll,之前查资料有的文章写的是Kinect.dll,被坑了一波)输入完成后点击确定。
完成以上步骤后依次点击应用,确定。
回到代码窗口,稍等片刻,发现代码报错消失
这个时候程序就能正确编译并运行了,win32控制台程序环境配置完成。