gpt4 book ai didi

ios - ld : duplicate symbol _objc_retainedObject on iOS 4. 3 ,但不适用于 iOS 5.0

转载 作者:技术小花猫 更新时间:2023-10-29 10:34:48 24 4
gpt4 key购买 nike


一些背景 - 我已经使用 Diney 的指南构建了一个自定义框架 http://db-in.com/blog/2011/07/universal-framework-iphone-ios-2-0/

它是为 armv6/armv7 构建的,它是一个基于 ARC 的框架,使用 4.3 的 depolyment 目标编译。

当我将生成的框架放入 5.0 项目时效果很好,但是当我将它放入 4.3 项目(ARC 或非 arc,无关紧要)时,我得到以下我无法真正理解的内容.. .

我也试过手动添加 libarclite.a 但它没有改变任何东西。

ld: duplicate symbol _objc_retainedObject in /Users/freak4pc/Project/MyFramework.framework/MyFramework and /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/arc/libarclite_iphoneos.a(arclite.o) for architecture armv7 Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1

在此方面提供任何帮助,我们将不胜感激。
谢谢
Shai

最佳答案

我遇到了同样的问题。解决方法是将框架的部署目标设置为 iOS5(检查是否不会产生其他问题)。

如果目标是 iOS4,那么您必须在主项目中使用 ARC,否则 libarclite 将丢失。我的解决方案是提供两个框架,具体取决于它们是否使用 ARC。

这里有两个指向 Apple 开发论坛的链接,其中包含更多信息: https://devforums.apple.com/message/539344#539344

https://devforums.apple.com/message/588316#588316

更新:有个更好的方法。只需使用 iOS5 最低目标构建静态库,并手动添加/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/arc/libarclite_iphoneos.a(和/Developer/usr/lib/arc/libarclite_iphonesimulator.a)如果你项目使用 ARC,需要 iOS4 支持。

更新 2:实际上,只需使用链接器标志 -fobjc-arc ;这会将 libarclite 与库链接(如果它不在其中)。最佳解决方案。

关于ios - ld : duplicate symbol _objc_retainedObject on iOS 4. 3 ,但不适用于 iOS 5.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com