iOS应用程序中的Mach-O链接器错误

时间:2013-12-10 04:09:39

标签: ios objective-c linker-errors

我正在尝试运行我从github here下载的iOS应用程序。我收到Mach-O Linker错误。我在网上搜索过但我一无所获。

我已在Build Target中添加了所有必需的库。错误堆栈就像这样

 Undefined symbols for architecture i386:
  "_CMAudioFormatDescriptionGetStreamBasicDescription", referenced from:
      -[FDWaveformView renderPNGAudioPictogramLogForAsset:done:] in FDWaveformView.o
  "_CMBlockBufferCopyDataBytes", referenced from:
      -[FDWaveformView renderPNGAudioPictogramLogForAsset:done:] in FDWaveformView.o
  "_CMBlockBufferGetDataLength", referenced from:
      -[FDWaveformView renderPNGAudioPictogramLogForAsset:done:] in FDWaveformView.o
  "_CMSampleBufferGetDataBuffer", referenced from:
      -[FDWaveformView renderPNGAudioPictogramLogForAsset:done:] in FDWaveformView.o
  "_CMSampleBufferInvalidate", referenced from:
      -[FDWaveformView renderPNGAudioPictogramLogForAsset:done:] in FDWaveformView.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

也许这是一个愚蠢的答案/问题,但您确实已经确定添加了CoreMedia框架并且它已在您的项目中链接?

编辑:

需要使用Xcode 4.6添加CoreMedia Framework并将故事板设置为与Xcode 4.6兼容。

使用Xcode 5,项目编译没有问题。

答案 1 :(得分:-1)

我已成功解决了这个问题。我正在使用旧版本的XCode,而项目期待XCode 5.我已将操作系统升级到Mac OS Mavericks,将我的XCode升级到Xcode 5,然后一切正常。