我正在尝试使用Visual Studio 2012中的OpenNI构建.cpp文件。我正在使用SimpleViewer示例的代码(它包含在OpenNI中)。当我尝试构建.cpp文件时,我得到错误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的目录)中。
答案 0 :(得分:3)
我遇到了类似的问题。示例项目不会构建,因为我使用OpenNI for x64但平台设置为Win32。更改为x64(在顶部的属性对话框中)为我修复了它。
答案 1 :(得分:0)
OpenNI 2.0还不够成熟。大多数库,开源代码,示例和包装器仍然使用OpenNI 1.5。由于OpenNI2使用Microsoft官方驱动程序而OpenNI1.x使用开源驱动程序,因此集成并不容易。 32位版本提供的问题少于64位,但我最终安装并运行了OpenNI 1.5和Kinect非官方驱动程序。
答案 2 :(得分:0)
问题与链接过程有关。您的项目属性中可能包含错误的链接路径。有解决方案,请检查question 也许它适合你的情况!