我该如何解决这个问题:ld:未找到符号collect2:ld返回1退出状态**

时间:2011-07-03 08:57:05

标签: iphone objective-c xcode

我在我的应用程序中添加了当前版本的Openears Library(版本0.911),该应用程序已经使用旧版本的Openears库(0.9.02)。现在我用新的替换了旧的Openears库的所有引用。

但是我收到了显示

的错误
**Undefined symbols:
  "___gxx_personality_v0", referenced from:
      ___gxx_personality_v0$non_lazy_ptr in libOpenEarsLibrary.a(PocketsphinxController.o)
      ___gxx_personality_v0$non_lazy_ptr in libOpenEarsLibrary.a(ContinuousModel.o)
      ___gxx_personality_v0$non_lazy_ptr in libOpenEarsLibrary.a(AudioQueueFallback.o)
      ___gxx_personality_v0$non_lazy_ptr in libOpenEarsLibrary.a(ContinuousADModule.o)
     (maybe you meant: ___gxx_personality_v0$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status**

谁能告诉我我做错了什么? .. 我可以知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:5)

尝试在构建设置>中添加-lstdc++ -ObjC其他链接器标志。

答案 1 :(得分:1)

转到XcodeMenu:Project-> EditActiveTarget" YourApp" - > build-> search" Other Linker Flags"并把

构建设置中的

-lstdc ++ -ObjC>其他Linker Flags并双击那里并写下" -lstdc ++ -ObjC "。这是Jano给出的解决方案..工作正常

答案 2 :(得分:0)

OpenEars开发人员在这里。我建议根据http://www.politepix.com/openears/configuring文档中的说明,通过将您使用PocketsphinxController的类的名称从MyClass.m更改为MyClass.mm来建议。

要了解此步骤,请搜索短语“您要在其中托管PocketsphinxController的任何类和/或LanguageModelGenerator必须将其后缀.m更改为.mm”。

整个项目的

-lstdc ++可能工作正常,但框架尚未经过这样的测试。