【问题标题】:Conflict between class and static library类和静态库之间的冲突
【发布时间】:2011-07-17 15:54:53
【问题描述】:

我在我的应用中使用 Layar Player。
它提供了一个静态库以包含在您的项目中。
安装并尝试编译后,出现此错误:

ld:重复符号 _OBJC_CLASS_$_Reachability 在 //LayarPlayer/Debug/liblayarplayer.a(Reachability.o) 和 //MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/armv7/Reachability.o 对于架构 armv7

我在我的应用中使用 Reachability 来检查网络状态,但它似乎已经包含在库中。
我已尝试删除代码中的每个 #import Reachability,但显然我得到了“未声明的函数”错误。
我该如何解决这个问题?

【问题讨论】:

  • 也许从您的项目中移除 Reachability 并为您的项目使用 -ObjC -all_load 链接器标志?
  • 这是文档建议做的,但删除可达性我得到“没有这样的文件或目录”

标签: iphone conflict reachability layar


【解决方案1】:

您需要从项目中删除引用。这意味着不要删除 #import Reachability,而是在您的项目文件中搜索 Reachability.mReachability.h 并删除它们,这样您的项目中就只有一个。

【讨论】:

  • 我得到“没有这样的文件或目录”。
  • 您的项目中至少还有一个Reachability.mReachability.h 文件,对吧?
【解决方案2】:

我从目标中排除了所有冲突的 .m 文件,现在一切正常。
头文件不得删除。

【讨论】:

    【解决方案3】:

    我解决了同样的问题

    1. 检查您的项目删除重复的可达性文件;
    2. 替换旧版本的可达性(我目前使用的是 2.2 版本);
    3. 打开 -ObjC -all_load 链接器标志。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      相关资源
      最近更新 更多