【问题标题】:symbol(s) not found for architecture armv6未找到架构 armv6 的符号
【发布时间】:2011-12-18 16:26:05
【问题描述】:

请帮助我解决以下错误。

我正在使用 3rd 方框架 (libIPhonecharting) 处理图表,在模拟器中一切正常,但是当我尝试构建 .app 文件以安装在 IPAD 设备中时,我收到以下错误消息。

忽略文件 /Users/xyz/Desktop/xyzIPAD/library/4.0/Release-iphoneos/libIPhoneCharting.a, 文件是为存档而构建的,它不是被链接的架构 (armv6)

架构 armv6 的未定义符号:“_OBJC_CLASS_$_DTCStroke”, 参考自: DemoLineChart.o "_OBJC_CLASS_$_IPCBar3DChart" 中的objc-class-ref,引用自: DemoBar3DChart.o "_OBJC_CLASS_$_IPCLineChart" 中的 objc-class-ref,引用自: DemoLineChart.o "_OBJC_CLASS_$_DTCDefaultCategoryDataset" 中的 objc-class-ref,引用自: DemoBar3DChart.o 中的 objc-class-ref DemoLineChart.o "_DTC_STROKE_CAP_SQUARE" 中的 objc-class-ref,引用自: +[DemoLineChart(Private) getRenderWithRender:] in DemoLineChart.o "_OBJC_CLASS_$_IPCTitle",引用自: DemoBar3DChart.o 中的 objc-class-ref DemoLineChart.o "_DTC_STROKE_JOIN_BEVEL" 中的 objc-class-ref,引用自: +[DemoLineChart(Private) getRenderWithRender:] in DemoLineChart.o ld:未找到架构 armv6 的符号 collect2: ld 返回 1 个退出状态

【问题讨论】:

  • 首先检查哪个不可用,然后为您的 xcode 添加 armv6

标签: objective-c ios4 armv7 armv6


【解决方案1】:

这是我遇到此问题的原因:

我从另一个项目中添加了.h.m 和 NIB,方法是将它们拖到我的项目导航器上。 Xcode 没有正确地将它们添加到构建阶段。

我对这个问题的解决方案:

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

非常感谢你对我有用

【讨论】:

  • 我遇到了同样的问题,HimanshuAgnihotri 的解决方案解决了它。
  • 我遇到了同样的构建阶段问题。注意在未检查目标成员资格的情况下将文件添加到项目中
  • 这让我很沮丧,但最终解决了。 Xcode 应该负责自动执行此任务。无论如何,谢谢喜芒树。
【解决方案2】:

几个问题:你的外部 lb 有它自己的项目文件吗?如果是这样,请确保将其配置为正确构建到 arm6 和 arm7。对您的主项目文件执行相同的操作以获得良好的效果。另外,您使用的是哪个版本的 XCOde?不同版本之间存在显着差异。

查看 libs 方案(取决于您使用的 XCode 版本)并确保已正确配置以在 iOS 设备上进行调试;我假设您正在构建自己的设备以进行调试:此建议是因为:“文件是为存档而构建的,而不是被链接的架构(armv6)”

在尝试了这些方法之后,请务必在每次构建之前清理整个项目。

希望这会有所帮助。我觉得你的痛苦 XCOde 是邪恶的。

【讨论】:

  • 您好,感谢您的回答,请澄清以下问题,
  • Santosh,好像有些文字被截断了。请重新添加问题。
  • 1.如何将外部 lb 配置为 armv6 和 armv7 并对我的主项目做同样的事情? 2. 我使用的是 xcode 4.1.2 版和 ipad 4.3 sdk 当我将 3rd 方库添加到我的项目中时,库的路径将添加到构建设置中的“库路径”中。如果我删除了路径,那么它甚至在模拟器中都不起作用,如果我将它添加回来,它在模拟器中也能正常工作。但在这两种情况下,它都不能在 Device 中工作。
  • 好吧,假设它有自己的项目文件,您可以为 lib 进行 arm 配置,就像为您的项目所做的那样。您也可以检查一下,因为它包含一些可能对您有用的信息:stackoverflow.com/questions/5266576/… 保持补丁适用于 sim 的方式。让我知道这是否有帮助。
  • 您好 mdominick,感谢您提供的链接我已经尝试了该链接中提供的所有解决方案,但仍然没有用。
【解决方案3】:

我通过向 target->Build Phases->Link Binary With Libraries 添加不存在的框架解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    相关资源
    最近更新 更多