我刚刚下载了OpenNI 2 SDK(www.openni.org),我正在尝试在Visual Studio 2012中设置一个项目 . 我做了什么:
-
创建一个新的C Win32控制台应用程序项目
-
转到项目> MyProject属性,然后在配置属性> VC目录中...
-
已将 C:\Program Files (x86)\OpenNI2\Redist; 添加到可执行目录
-
已添加 C:\Program Files (x86)\OpenNI2\Include; 以包含目录
-
已将 C:\Program Files (x86)\OpenNI2\Redist; 添加到参考目录
-
已向图书馆目录添加 C:\Program Files (x86)\OpenNI2\Lib;
但是当我尝试构建时,我有以下未解决的符号错误(其中ConsoleApplication1是我的项目名称)
Error 1 error LNK2019: unresolved external symbol
__imp__oniInitialize referenced in function
"public: static enum openni::Status __cdecl openni::OpenNI::initialize(void)"
(?initialize@OpenNI@openni@@SA?AW4Status@2@XZ)
c:\Users\MyPC\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj
ConsoleApplication1
我知道这个链接错误是说链接器找不到一些库,但我认为我刚刚做的就足够了 .
我也尝试了64位版本,创建了一个64位项目,但我有同样的错误 .
我找不到令人满意的关于这个主题的文档 .
我确定我错过了一些愚蠢的话 . 你能就此提出一些建议吗?
3 回答
您还应该执行以下步骤:
0-在C / C部分的“常规”节点下,选择
并添加
这些是指向OpenNI Include目录位置的环境变量 . (默认值为:
1 - 在“链接器”部分的“常规”节点下,选择
并添加
这些是指向OpenNI Lib目录位置的环境变量 . (默认值为:
2 - 在“链接器”部分的输入节点下,选择
并添加
3 - 确保将Additional Include和Library目录添加到 Release 和 Debug 配置中 .
4 - 将OpenNI的redist目录中的所有文件(请参阅环境变量“$(OPENNI2_REDIST)”或“$(OPENNI2_REDIST64)”)复制到您的工作目录 . (默认值是
请注意,从命令行运行时,工作目录是可以找到可执行文件的目录,从Visual Studio运行的位置,默认目录是可以找到项目文件(.vcproj,.vcxproj)的位置 .
你还需要指向实际的库文件:
openni2.lib
如果您将所有选项(包括,Lib,...)添加到项目设置并再次出现此错误,可能您的项目平台是Win32并且您想要使用OpenNI x64
在这种情况下,您必须将平台更改为x64(页面顶部的项目属性)