链接错误 - 缺少文件符号中未找到的架构i386

时间:2011-09-15 08:46:05

标签: c linker ld i386 armv6

我正在开发一个使用Twitter API的应用。

当它连接到IOS设备时,应用运行正常,但是当我将架构从armv6更改为i386以使其在模拟器上运行时,我收到此错误:

  ld: warning: ignoring file       /Users/username/Desktop/tweetsAloud/tweets2/tweetsAloud/Src/NeoSpeech/lib-i iphoneos/libvt_eng_julie.a, missing required architecture i386 in file
Undefined symbols for architecture i386:
  "_VT_LOADTTS_ENG", referenced from:
      -[TweetsViewController viewWillAppear:] in TweetsViewController.o
  "_VT_UNLOADTTS_ENG", referenced from:
      -[TweetsViewController viewWillDisappear:] in TweetsViewController.o
  "_VT_TextToFile_ENG", referenced from:
      -[TweetsViewController readyStringToPlay:] in TweetsViewController.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

所以我已经阅读了很多建议并尝试了大部分建议,运气不佳。

我首先确定我拥有所有框架,然后我尝试编辑project.pbxproj,仍然无法正常工作。

我尝试过清理并更改构建设置。

任何人都有任何想法,为什么我收到此错误消息?

1 个答案:

答案 0 :(得分:5)

您可能正在将i386项目与库NeoSpeech / lib-i iphoneos / libvt_eng_julie.a的arm构建链接起来。这就是警告的意思。

如果您有此lib的i386版本,请将链接器设置更改为指向该版本。如果您没有此lib的i386版本,那么您必须从作者那里获取它,或者如果您有源代码则自行编译。

祝你好运。