我试图在Visual Studio 2012中使用OpenNI构建一个.cpp文件 . 我正在使用SimpleViewer示例的代码(它包含在OpenNI中) . 当我尝试构建.cpp文件时,我得到了 error LNK2019 ,当编译器必须链接OpenNI库时,这似乎是个问题 . 可能有什么不对?
错误(共55个):
> Error 1 error LNK2019: unresolved external symbol __imp__oniShutdown
> referenced in function "public: static void __cdecl
> openni::OpenNI::shutdown(void)"
> (?shutdown@OpenNI@openni@@SAXXZ) C:\Develop\VisualStudioWorkspace\Projects\My
> programs\OpenNI2_test\OpenNI2_test\Viewer.obj OpenNI2_test
Error 2 error LNK2019: unresolved external symbol __imp__oniWaitForAnyStream referenced in function "public: static enum openni::Status __cdecl openni::OpenNI::waitForAnyStream(class openni::VideoStream * *,int,int *,int)" (?waitForAnyStream@OpenNI@openni@@SA?AW4Status@2@PAPAVVideoStream@2@HPAHH@Z) C:\Develop\VisualStudioWorkspace\Projects\My programs\OpenNI2_test\OpenNI2_test\Viewer.obj OpenNI2_test
我按照OpenNI website中描述的所有步骤在Visual Studio中编译文件:我添加了所有VCC目录以及Include和Lib环境变量 . 我还在Linker部分的附加依赖项中添加了OpenNI2.lib . 我还将Redist文件复制到工作目录(我拥有.vcproj的目录)中 .
3 回答
我遇到了类似的问题 . 示例项目不会构建,因为我使用OpenNI for x64但平台设置为Win32 . 更改为x64(在顶部的属性对话框中)为我修复了它 .
OpenNI 2.0还不够成熟 . 大多数库,开源代码,示例和包装器仍然使用OpenNI 1.5 . 由于OpenNI2使用Microsoft官方驱动程序而OpenNI1.x使用开源驱动程序,因此集成并不容易 . 32位版本提供的问题少于64位,但我最终安装并运行了OpenNI 1.5和Kinect非官方驱动程序 .
问题与链接过程有关 . 您的项目属性中可能包含错误的链接路径 . 有解决方案,请查看question也许它适用于您的情况!