【问题标题】:iOS static library with same third party lib cause duplicate symbol error具有相同第三方库的 iOS 静态库导致重复符号错误
【发布时间】:2014-01-08 03:53:03
【问题描述】:

我创建了一个需要SDWebImage 的静态库libA.a,我想将libA.a 添加到已经有SDWebImageProjectB,然后导致duplicate symbol error

更新:我不能只从ProjectB 中删除SDWebImageSDWebImage 是不同的版本,ProjectB 中的SDWeImage 进行了一些自定义更改。

有什么方法可以在静态库和项目中使用同名第三方?

谢谢。

【问题讨论】:

  • 你可以从 ProjectB 中删除 SDWebImage,因为它已经在 libA.a
  • @JeanLuc 我无法从 ProjectB 中删除 SD,因为 ProjectB 中的 SD 进行了一些自定义更改,并且两个 SD 的版本不一样。
  • 哦,在那种情况下,我将重命名已修补的 SDWebImage 类

标签: ios iphone xcode static-libraries


【解决方案1】:

我在使用两个第三方库时也遇到了同样的问题。我通过从构建设置的“其他链接器标志”中删除 all_load 解决了这个问题。

【讨论】:

    【解决方案2】:

    请参考this similar questionAvoiding duplicate symbol issues when using common utilities within a static library

    简而言之,这可以通过在 ProjectB 的“Other C Flags”构建设置中添加一系列 -DOldSymbol=NewSymbol 标志来解决。

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 2013-08-19
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      相关资源
      最近更新 更多