找不到符号:启用ARC的dylib中的_objc_retainAutoreleaseReturnValue

阿尔伯特

我有一个支持ARC的应用程序,可通过来动态加载dylib dlopendylib也支持ARC。两者都使用MacOSX SDK 10.7进行了编译,部署目标为10.6。

dlopen,我得到:

Symbol not found: _objc_retainAutoreleaseReturnValue
  Referenced from: /Users/bea/Downloads/MusicPlayer.app/Contents/Resources/Python/_guiCocoaCommon.dylib
  Expected in: /usr/lib/libobjc.A.dylib

这是正确的,因为_objc_retainAutoreleaseReturnValue不在/usr/lib/libobjc.A.dylibMacOSX 10.6中。但是在哪呢?

我该如何解决?

阿尔伯特

dlopen使用我与RTLD_NOW标志。(我在Python中通过ctypes.CDLL/使用了它,ctypes._dlopen并将RTLD_NOW其强制执行。)

我猜您因此必须RTLD_LAZY在MacOSX上使用当我使用时RTLD_LAZY,一切正常(到目前为止)。看起来好像_objc_retainAutoreleaseReturnValue实际上没有使用该符号所以我想知道为什么它在那里。也许这是Apple编译器中的错误。 编辑:我认为这个解释是错误的。我查看了反汇编,并将其用于我的一种方法中。但是我想它会___arclite_objc_retainAutoreleaseReturnValue在运行时被Dylib中的现有文件替换(所以我想libarclite_macosx.a总是自动静态链接到它)。

(我在这里打开了有关Python的问题。您可以在此处查看我的修复。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

dyld:找不到符号:_OBJC_CLASS _ $ _ WKUserScript ...在... WebKit中预期

来自分类Dev

dyld:找不到符号:_OBJC_CLASS _ $ _ NSHTTPURLURLResponse

来自分类Dev

dyld:找不到符号:_OBJC_CLASS _ $ _ NSNetService错误

来自分类Dev

RMagick抱怨OSX中找不到libMagickCore.5.dylib

来自分类Dev

IntelliJ 14中的“找不到符号”

来自分类Dev

摆脱intelliJ中的“找不到符号”错误

来自分类Dev

在对象数组中找不到符号

来自分类Dev

在Android Studio中找不到符号类

来自分类Dev

在Junit测试中找不到符号失败

来自分类Dev

在Java中找不到符号时间

来自分类Dev

在Java中找不到符号SetUtils

来自分类Dev

R中的GSL库-找不到符号

来自分类Dev

错误:找不到Java中的异常符号

来自分类Dev

修复Java中找不到符号

来自分类Dev

在我的方法实例中找不到符号?

来自分类Dev

在kb.nextInt()中找不到符号;

来自分类Dev

Android:在gdbserver中找不到调试符号

来自分类Dev

Java中的“找不到符号”错误

来自分类Dev

在 Antlr4 中找不到符号

来自分类Dev

在卡片类中找不到符号

来自分类Dev

Objc代码找不到Swift中定义的Bool变量

来自分类Dev

找不到Livepatch启用?

来自分类Dev

IDebugSymbols在符号服务器中找不到符号

来自分类Dev

使用-ObjC / -all_load链接器标志时找不到符号

来自分类Dev

应用程序崩溃-dyld:找不到符号:_OBJC_CLASS _ $ _ UITraitCollection

来自分类Dev

找不到CGRectMake符号

来自分类Dev

找不到符号assertEquals

来自分类Dev

找不到符号“组件”

来自分类Dev

ANTLR:找不到符号