3

我在我的 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 时出现错误。

4

6 回答 6

5

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

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

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

于 2013-08-09T14:30:55.493 回答
2

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

它发生在我身上:)

链接:https://stackoverflow.com/questions/12279622/duplicate-symbols-for-architecture-i386-clang

于 2014-09-11T16:46:08.340 回答
2

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

这些行从下面的链接帮助我。

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

于 2013-03-17T16:27:15.020 回答
1

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

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

于 2013-03-17T12:23:19.020 回答
0

我添加了我的解决方案,就像您按照自述文件一样,它会要求您执行以下操作:

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

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

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

于 2014-03-11T09:41:39.940 回答
-2

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

于 2015-11-26T11:22:57.283 回答