0

我在 Visual Studio 2010 中遇到了一个奇怪的错误...

我在 VS 2010 Ultimate 上使用 Kinect for Windows SDK v1.8,用于使用 MS Kinect 的语音识别程序。

就像在示例 SpeechBasics(可在 Kinect Developer Toolkit Browser 上获得)中解释的那样,我在我的项目属性中添加了具体的 VC++ 包含和库路径,然后列出了默认的系统包含和库目录。

但是当我构建解决方案时,我收到以下错误:

CKinect_Squeletton.obj:错误 LNK2001:未解析的外部符号 _SPDFID_WaveFormatEx CKinect_Squeletton.obj:错误 LNK2001:未解析的外部符号 _CLSID_SpStream CKinect_Squeletton.obj:错误 LNK2001:未解析的外部符号 _CLSID_SpInprocRecognizer CKinect_Squeletton.Cobj1:错误未解析符号

构建失败。

我检查了我所有的包含文件,我所有的项目属性。我做了很多研究,并测试了许多响应的可能性,但我没有找到针对我的问题的响应......

我尝试清理解决方案,使用 x64 目标架构构建,但这并不总是有效。

  • 为什么我有这个问题?
4

2 回答 2

0

我已经解决了我的问题!

我在 Windows 7 64 位上工作,并且我已经安装了 MS Speech Platform SDK 11 x64。

但是要使用 x86 目标架构构建,我必须安装和使用 MS Speech Platform SDK 11 x86,并在我的项目属性中指定 x86 sapi lib 的路径!

当我尝试使用 x64 目标架构构建时,编译器给了我错误,因为我在项目中包含的其他特定库是针对 x86 架构的......

对不起,也许这个解决方案有一天会帮助某人!

于 2014-04-06T00:25:09.887 回答
0

就像评论中建议的那样,我检查了社交 MSDN 上的链接

我已经解决了一些错误,但不是全部都在使用__uuidof(SpStream)而不是CLSID_SpStream,而__uuidof(SpInprocRecognizer)不是CLSID_SpInprocRecognizer

但我没有CLSID_SpObjectTokenCategory在我的代码中找到,我只有

ISpObjectToken *pEngineToken = NULL;
hr = SpFindBestToken(SPCAT_RECOGNIZERS,L"Language=40C;Kinect=True",NULL,&pEngineToken);

我不能用__uuidof(SpObjectTokenCategory).

另外,我总是不知道如何解决错误

CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _SPDFID_WaveFormatEx

我在 Project + Properties、Linker、Input 中添加了 sapi.lib,我也尝试使用#pragma comment(lib, "sapi.lib")

于 2014-04-05T18:44:42.553 回答