静态lib链接错误:找不到架构的符号

时间:2012-07-06 13:41:32

标签: ios xcode libraries static-linking

我需要将FFMPEG的库(libavformat,libavcodec等)链接到我的项目。 我已经下载了iFrameExtractor项目的示例,并已成功构建它。

xcode-proj打开正常,示例应用程序工作正常,所以我只是从这个项目的libs到我的。 但xcode无法构建它,说我

  Undefined symbols for architecture armv7:
  "av_register_all()", referenced from:

我检查了目标设置,我看不出我的项目设置和iFrameExtractor之间有任何区别。 我刚将所有ffmpeg文件夹移动到我的项目文件夹中。

注意:

1)nm命令告诉我这个符号在库中。

2)库是胖文件,包括i386,armv6,armv7架构。

请帮帮我,我做错了什么?

1 个答案:

答案 0 :(得分:1)

我昨天刚刚经历了这个:-)

在xcode中,您需要将.a文件添加到项目中链接库的列表中。最简单的方法是将.a直接拖到左侧导航区域的项目条目中:

adding libraries via drag and drop.

或者,您可以从项目编辑器摘要区域中的对话框中选择它们:

adding libraries via selection

只需确保选择实际的.a文件,而不是整个文件夹。然后,只需导入他们的标题(因为你可能已经在做...),你应该好好去: - )