【问题标题】:ld: 871 duplicate symbols for architecture armv7, clang: error: linker command failed with exit code 1 (use -v to see invocation)ld:架构 armv7 的 871 个重复符号,clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
【发布时间】:2024-05-19 23:15:01
【问题描述】:

我在我的 iPhone 应用程序中使用 FastPDFKit 来显示 PDF。当我在模拟器上运行项目时,它工作正常。但是,当我在 iPhone 上运行该项目时,它给了我以下错误。

duplicate symbol _value_map in:
    /Users/alkandari/Desktop/iPhone Apps/MyTest002/MyTest002/FastPdfKit.embeddedframework/FastPdfKit.framework/FastPdfKit(FastPdfKit)
duplicate symbol _writeUnicodeToUTF8Buffer in:
    /Users/alkandari/Desktop/iPhone Apps/MyTest002/MyTest002/FastPdfKit.embeddedframework/FastPdfKit.framework/FastPdfKit(FastPdfKit)
ld: 871 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: 871 duplicate symbols for architecture armv7


clang: error: linker command failed with exit code 1 (use -v to see invocation)

知道为什么会这样吗?


当我在调试和发布部分的配置中添加 FastPDFFramework 时出现错误。

【问题讨论】:

    标签: iphone ios objective-c ios6


    【解决方案1】:

    即使在弄乱了标题/框架搜索路径、重建等之后,我也找到了一个解决方案:

    http://support.fastpdfkit.com/discussions/problems/443-i-am-unable-to-link-fastpdfkitembeddedframework

    我在我的项目中删除了 -all_load 链接器标志,它编译成功。作为警告,请确保删除此标志适合您的项目。它可能被放在那里是有原因的

    【讨论】:

      【解决方案2】:

      您可以尝试清理 FastPdfKit 目标并重新编译它吗?它应该从头生成一个新框架,然后您应该能够将其添加到您的项目中,覆盖您正在使用的框架。您可以在 FastPdfKit 项目根目录中获取新的 .embeddedframework。

      这些行通过下面的链接帮助了我。

      http://support.fastpdfkit.com/discussions/problems/759-duplicate-symbols-for-architecture-armv7

      【讨论】:

        【解决方案3】:

        此错误经常发生的另一个原因是意外导入 .m 文件而不是 .h。

        这件事发生在我身上:)

        link : https://*.com/questions/12279622/duplicate-symbols-for-architecture-i386-clang

        【讨论】:

          【解决方案4】:

          你在头文件中有太多的#include 或#import 指令用于相同的事情。移动到在标题中使用 @class 并且仅在您的 .m 文件中导入/包含。

          总之,您只需要查看它们的位置并重新评估它们。

          【讨论】:

          • 我没有很多包含文件。我在视图控制器中只有#import <FastPdfKit/FastPdfKit.h>...
          • 如果我有太多包含,为什么模拟器没有问题?为什么只有 iphone?
          • 你搬东西了吗?所以这对我说的是,有些东西已经建成并且正在重建(失败)。这似乎是类扩展。但是为你搜索我可以在 fastpdfkit 支持论坛上看到这个。 support.fastpdfkit.com/discussions/problems/…
          【解决方案5】:

          我添加我的解决方案,就像你按照自述文件一样,它会要求你这样做:

          Inherit the project options: select the Project an from info tab and configurations line choose **FastPdfKitFramework** from the drop down list;
          

          我将 FastPdfKitFramework 目标替换为 None,现在效果很好。

          因为它在自述文件中,我从不在我的项目中添加 .a 所以下载重新编译的对我没有帮助,因为我不想重新启动所有集成。 我希望它可以对某人有所帮助。

          【讨论】:

            【解决方案6】:

            我尝试删除 -all_loads 链接器标志,它对我有用,在项目中没有任何问题。

            【讨论】: