【问题标题】:Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7)Apple Mach-O 链接器错误(架构 armv7 的重复符号)
【发布时间】:2014-10-30 14:49:23
【问题描述】:

这是错误:

duplicate symbol _OBJC_METACLASS_$_BFAppLinkReturnToRefererView in:
    /Users/User/Documents/FacebookSDK/FacebookSDK.framework/FacebookSDK(BFAppLinkReturnToRefererView.o)
    /Users/User/Desktop/Project/Project/Project/Assets/Facebook/Editor/iOS/FacebookSDK/FacebookSDK.a(BFAppLinkReturnToRefererView.o)
ld: 889 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已搜索找到此错误的解决方案,但找不到。有很多类似的错误,但是这个还没有被人问过。当我将“-ObjC”添加到“其他链接器标志”时,会出现此问题。我需要添加它才能使用 Admob 服务。可能是什么问题呢?我该如何解决这个问题?

【问题讨论】:

  • 找到包含该类的库 (BFAppLinkReturnToRefererView) 并将其从库中删除以链接。问题是多个目标文件提供相同的类。使用-ObjC 是非常危险的,您可能想要调查-force_load。详情请见my question
  • 我试图找到BFAppLinkReturnToRefererView,但我找不到。图书馆里没有这样的类。我尝试使用-force_load 但我收到此错误-stdlib=libstdc++ 接下来我需要做什么?感谢您的帮助。
  • 我找到了这个文件BFAppLinkReturnToRefererView 并将其删除。还是同样的问题。 :)

标签: c++ ios xcode linker-errors


【解决方案1】:

我在集成 Facebook-ios-sdk 时遇到了同样的问题。这是因为我正在使用另一个第三方库,该库也链接了 Bolts.framework。我找到的解决方案是从 Github 上托管的源代码中合并 facebook-ios-sdk。 链接:https://github.com/facebook/facebook-ios-sdk 在您的系统上克隆此 repo 并在 src 目录中打开 facebook-ios-sdk.xcodeproj,构建阶段选项卡,并将“必需”字段更改为“可选”。从 scripts 目录运行脚本 build_framework.sh,将 build 目录中新创建的 FacebookSDK.framework 集成到您的项目中。

对于任何其他此类冲突的框架错误,可以遵循相同的过程。

【讨论】:

    猜你喜欢
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2014-01-16
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多