【问题标题】:106 duplicate symbols for architecture armv7架构 armv7 的 106 个重复符号
【发布时间】:2012-11-23 12:16:00
【问题描述】:

在我的 iPhone 应用程序上工作并尝试构建以进行调试,我得到“106 个重复的架构 armv7 符号”?

我正在使用 .workspace 文件,因为我正在尝试使用 CocoaPods。如果我不使用 .workspace 而是使用 .xcodeproj ,我不会收到错误消息,但是我会丢失 -lPods 。

在我的项目中,项目导航器中有以下目标。

Pods (blue icon)
MyProject (blue icon)
  Restkit.xcodeproj (blue icon)
  ... all my files

问题是 Restkit 引用了“AFHTTPClient.h”和所有其他 AF 代码,但我通过 CocoaPods 包含了它。我尝试从 RestKit 库中删除 AFNetworking 文件夹,但显然 Restkit 库找不到 AFNetworking 的 Pods 版本?

有没有办法让 RestKit 使用 Pods 版本?如果不是,我该如何从我的项目中删除 Pod?

【问题讨论】:

  • 为了他人的利益:删除一些我不再需要的类后,我遇到了这个错误。在能够再次成功编译之前,我必须进行清理。

标签: objective-c ios xcode armv7 cocoapods


【解决方案1】:

在你的一个 .h 文件中有一行是你写的

#include "___.m"

而不是

#include "___.h"

【讨论】:

    【解决方案2】:

    所以我修好了。从供应商文件夹中删除 AFNetworking 的 RestKit 版本后,我通过将其拖入 Xcode 中将其添加回来。它询问我希望它使用/复制到哪个项目,这一次我选择了 RestKitTest(或任何 RestKitTesting 的名称)。现在可以了。也许我之前同时选择了 RestKit 和 RestKitTest,这是错误的?

    【讨论】:

      【解决方案3】:

      我也遇到了同样的错误。通常,由于项目文件夹中的类和 xib 重复,会发生这种错误。例如,在我的项目中,我有两次这些课程ServiceRequest.h/.m。摆脱重复的,你就可以开始了。

      【讨论】:

        【解决方案4】:

        在 Build Phases -> Compile Sources 中,确保没有将同一个文件添加两次。

        【讨论】:

          【解决方案5】:

          架构重复符号”问题出现在两种情况下:

          1. 您在项目中添加了两次 .m 文件

          2. 您正在使用一个静态库(.a 文件),其中已经包含了一些您包含在项目中的类。

          要修复任何这些情况,请检查链接器错误并查找重复的 .o 文件(示例:Reachability.o)​​。

          然后进入构建阶段 -> 编译源代码 搜索指定文件,如果出现两次则删除其中一个,如果只出现一次则表示该文件也包含在一个中添加到项目中的静态库。从要编译的源列表中删除它,然后重试。

          【讨论】:

          • 你太棒了,我在尝试将 GoogleAnalytics 添加到我的项目时遇到了很多错误,我的解决方案之一是将 libGoogleAnalytics.a 添加到 Build Phases,但它失败了,我忘了删除它 XD。
          【解决方案6】:
          • 我看到这个错误时,我确实将我的葫芦框架拖放到 xcode 上,并在显示的窗口中选择了添加到目标选项。基本上有两个对添加的文件的引用 我不得不手动删除葫芦框架

          • 正确的做法

            复制到葫芦框架到项目目录 然后去xcode项目 选择目标 -> 构建阶段 -> 将二进制文件与库链接并使用 + 按钮添加框架

          【讨论】:

            【解决方案7】:

            我注意到在安装 cocoaPods 后,Google 分析也会导致重复符号。一旦我删除了其中一个档案,libGoogleAnalytics_debug.a 或 libGoogleAnalytics.a 重复就消失了。但很明显,如果我删除调试之一,我将无法运行 os 模拟器,反之亦然。我知道这不是解决方案,但至少它可以让我们知道什么是解决方案。如果我能弄清楚在这种情况下如何同时拥有两个文件,我会回到这个线程。

            编辑: 我能够通过从 G 分析版本 2 升级到 3 来解决这个问题。它只有一个库文件,我想这就是我们不再得到重复符号的原因。我希望这是有道理的。

            【讨论】:

              猜你喜欢
              • 2013-05-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-11-02
              • 1970-01-01
              • 2016-02-12
              相关资源
              最近更新 更多