架构armv6的未定义符号,更新到iOS 4.3

时间:2011-03-23 10:07:16

标签: iphone objective-c xcode ios ios4

我正在使用新的xcode4修补从iOS 4.2到4.3的应用程序。 除了将iOS设置为4.3之外,没有进行任何更改,我创建了权利并且去了!

我收到的消息是:

Undefined symbols for architecture armv6:"function", referenced from:

我试图清理项目,重新安装xcode。 我也卸载了xcode4演示版。 我也尝试设置优化armv7。

我会很高兴得到一些帮助,我被困住了。真。

非常感谢!

8 个答案:

答案 0 :(得分:12)

以下是我遇到此问题的方法:

我通过将它们拖到我的项目导航器中,从另一个项目中添加了.h.m和NIB。 Xcode没有正确地将它们添加到Build Phases中。

我解决此问题的方法:

enter image description here

  • 点击“项目”图标
  • 转到导航器菜单中的目标
  • 点击“构建阶段”标签
  • .m文件添加到“编译源”(将其拖过,或使用+按钮)
  • .xib或Storyboard文件添加到“复制捆绑资源”
  • 清理并构建

答案 1 :(得分:10)

对于这种类型的错误,我通常会看到这一点:

 Undefined symbols for architecture armv6:
  "_OBJC_CLASS_$_MyCustomController", referenced from:
      objc-class-ref in SomeOtherController.o
ld: symbol(s) not found for architecture armv6

几乎每次我看到此错误都是由SomeOtherController.hSomeOtherController.m中的import语句中的隐藏/不可见字符引起的。因此,查看.h和.m文件,找到如下所示的行:

#import "MyCustomController.h"

删除此行并重新输入(不要复制/粘贴它 - 您只需重新填写有问题的隐藏字符)。

答案 2 :(得分:8)

在导航窗口中单击您的项目名称,选择您要构建的目标,转到构建阶段,确保Xcode告诉您缺少该目标。

答案 3 :(得分:1)

我在使用TestFlight SDK的iOS7 Xcode5中遇到了同样的问题。我的问题是'仅限构建活动架构'设置为仅调试。

您可以在'YourProject' - &gt;'构建设置' - &gt;'架构'下找到设置<释放'选项为'是'。

这解决了我的问题 - 我希望它也能帮到你! :)

答案 4 :(得分:0)

我有这个问题,我刚解决了。 这是函数名称中的一个简单错字(忘了一个字母),导致了我的问题。

答案 5 :(得分:0)

我在使用TestFlight SDK的iOS7 Xcode5中遇到了同样的问题。我的问题是'仅限构建活动架构'设置为仅调试。

您可以在“YourProject”下找到设置 - &gt;“构建设置” - &gt;'架构'将'调试'选项设置为'architecure arm7 arms7s'。

这解决了我的问题 - 我希望它也能帮到你! :)

答案 6 :(得分:0)

我突然出现了类似的问题 - 更具体地说,我得到了Undefined symbols for architecture armv6: "_OBJC_CLASS_$_CLLocationManager", referenced from: objc-class-ref in MyCLController.o

请注意,我的框架中列出了CoreLocation.framework(在xcode'Project left nav中,在Frameworks文件夹下);之前的地理定位工作得很好。

我通过重新安装CoreLocation.framework解决了这个问题。

如果您不确定如何在xcode中执行此操作:
*点击xcode左侧导航栏中的项目 *进入项目设置的常规选项卡 *向下导航 - 您将看到Linked Frameworks and Libraries下安装的框架列表 *单击+图标以添加CoreLocation.framework

答案 7 :(得分:0)

在我的情况下,我在viewcontroller.m

中这样做
#import <MediaPlayer/MediaPlayer.h>

没有使用MediaPlayer.framework进行链接二进制文件库。添加后,它编译好