草庐IT

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

coder 2023-07-28 原文


一些背景 - 我已经使用 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/

有关ios - ld : duplicate symbol _objc_retainedObject on iOS 4. 3 ,但不适用于 iOS 5.0的更多相关文章

  1. javascript - iOS5 不支持 bind()! - 2

    我有一个客户有一台原装iPad,我注意到它doesn'tsupportthe.bindmethod.问:如果我的老板坚持支持IOS5.1.1,是否有其他方法可以将变量传递给回调?我不认为我可以简单地将变量放入全局范围,因为如果我在循环中,我设置的变量可能会覆盖回调正在寻找的同一个变量。 最佳答案 您可以使用MDN提供的实现,甚至可以使用您自己的实现。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bin

  2. javascript - 如何在 UIWebView iOS5 中预选 contenteditable 字段 - 2

    首先,我知道contenteditable仅适用于iOS5我已经说明了这一点-我们为iOS5用户提供了一项功能,允许使用contenteditable进行富文本粘贴。到目前为止,此功能非常有效,我想做的就是当View似乎将contenteditable字段设置为事件(预选)以便出现键盘并且用户可以立即开始键入。这是我用于UIWebView的本地html文件PLACEHOLDER我已经尝试使用一些javascript来完成此操作,使用我找到的用于预选文本输入的教程。我无法让它工作,即使我试图切换到文本输入字段进行测试。这可能是由于我对javascipt缺乏经验,所以如果这是解决方案,请明

  3. Javascript IOS5 "JavaScript execution exceeded timeout" - 2

    以下测试基本上是~1000次数学运算,并且在大多数PC和android浏览器以及iOS4.x上运行良好。在iOS5safari(iPhone4和iPad2)上,我们得到“JavaScript:错误未定义的JavaScript执行超出超时”。非常感谢任何帮助。/**Convertsnumericdegreestoradians*/if(typeof(Number.prototype.toRad)==="undefined"){Number.prototype.toRad=function(){returnthis*Math.PI/180;}}functiongc(lat1,lon1,la

  4. iphone - 可以在运行时使用 Objc/iPhone 代码针对 xsd 验证 xml - 2

    我有在运行时读入的xml文件,是否可以在运行时使用ObjC对xsd文件验证xml?这可以在java中完成和c#..但我需要在我的iPhone应用程序中运行它。 最佳答案 我认为您无法在iOS上使用ObjC来执行此操作。我认为您需要使用libxml2。Here'sanexampleofasimpleCprogramthatvalidatesXMLagainstXSD.Hereareinstructionsonaddinglibxml2toanXCodeproject. 关于iphone-可

  5. java - 将 Java 代码移植到 ObjC 时,如何最好地表示已检查的异常? - 2

    我正在努力将Java代码库移植到Cocoa/Objective-C,以便在桌面MacOSX上使用。Java代码有很多和很多方法,并已检查异常(exception)情况如:doubleasNumber()throwsFooException{...}在Objective-C中表示这些的最佳方式是什么?异常或错误输出参数?-(CGFloat)asNumber{...//possibly[FooExceptionraise:format:];}或-(CGFloat)asNumberError:(NSError**)outError{...}我感觉输出错误通常是Objective-C的更好解决

  6. c++ - C/ObjC - 参数大小。使用指针与值 - 2

    在什么时候我应该在我的函数/方法中传递一个指向数据的指针,而不是仅仅传递值?显然,在某些情况下我希望函数对给定数据进行操作,但如果我只是为了信息/复制目的传递值怎么办?例如,foo作为基本类型:voidsetFoo(intfoo);...intfoo=1;setFoo(foo);现在foo作为一个简单的结构:typedefstruct{intx;inty;}Foo;voidsetFoo(Foofoo);...Foofoo={1,2};setFoo(foo);//ApplecodedoesthiskindofthingwithCGSize,CGPoint...但是如果foo是一个更大的结

  7. c++ - 带回调的 ObjC/C/C++ 高分辨率计时器 - 2

    我确定之前有人问过这个问题,所以我当然使用搜索功能来检查是否有解决我问题的答案。然而,我所能找到的只是关于高精度测量时间的大量答案。我需要的是一个高分辨率(至少毫秒)的计时器,它允许我在定义的时间段过去时触发回调。我想在CocoaMacOSX应用程序中使用它,因此C/C++或Obj-C是可能的。如果需要额外的库,那么这也很好。我找到了这个http://www.songho.ca/misc/timer/timer.html但它使用的是繁忙的等待策略,我认为会消耗太多性能。非常感谢您的帮助! 最佳答案 您可以直接使用Apple的GCD。

  8. ios - 架构 armv7 : "_OBJC_CLASS_$_UBSDKConfiguration", 的 undefined symbol 引用自 - 2

    我的应用程序包含许多第三方SDK,如Facebook、Google+、GoogleAnalytic等。在iOS7到最新的iOS10.xbeta上,一切都运行良好现在我想整合UberRidesSDK在我的申请中。由于UberRidesSDK支持“高于iOS8.x”,我更新了我的应用程序并提供了高于iOS8.x的支持能力。现在我收到错误Undefinedsymbolsforarchitecturearmv7:"_OBJC_CLASS_$_UBSDKConfiguration",referencedfrom:objc-class-refinAppDelegate.old:symbol(s)n

  9. ios - 不调用 ObjC 类方法。 GDB玩游戏? - 2

    我有一个自定义的UITableViewController,我试图用它来管理UITableView。我的代码在包含UITableView的主UIViewController中的流程如下所示:_messagesTableVC=[[AllMessagesTableViewControlleralloc]init];_allMessageTableView.dataSource=_messagesTableVC;_allMessageTableView.delegate=_messagesTableVC;[_allMessageTableViewreloadData];AllMessages

  10. ios - 是否有可能在 ios 中的 objc 中播放一次振动小于 0.25 秒 - 2

    我需要在ios中播放小于0.25秒的振动,振动的顺序如下1次振动0.25秒,然后3次振动0.15秒,这个循环将持续有限的时间,比如2或3分钟。这里还需要精度,这意味着每次振动都必须在准确的时间开始现在当我播放振动时它每秒播放一次-(IBAction)onBtnVibrateClicked:(id)sender{[self.viewendEditing:YES];[myTimerinvalidate];if(_txt_VibrationPerMinute.text.length==0){_txt_VibrationPerMinute.text=@"10";}myTimer=[NSTime

随机推荐