尝试在项目中加载 dylib 时出现以下错误:
[0x0-0x33033].com.mycompany.testlibload[840] Error: dlopen() -> dlopen(/Users/Test/Desktop/test/libtestlib_64bit.dylib, 2): no suitable image found. Did find:
[0x0-0x33033].com.mycompany.testlibload[840] /Users/Test/Desktop/test/libtestlib_64bit.dylib: GC capability mismatch0 .
有人可以向我解释一下问题是什么以及如何解决它吗?
最佳答案
我找到了答案:
编译代码以在 Objective-C 运行时中使用垃圾收集器写屏障分配原语。代码被标记为具有 GC 能力。标记为支持 GC 的应用程序将由启用垃圾收集的运行时启动。此应用程序链接或加载的所有 Objective-C 代码也必须具有 GC 能力。编译为 GC 必需的代码被认为不使用传统的 Cocoa 保留/释放方法,并且可能不会加载到未启用垃圾收集运行的应用程序中。编译为 GC 支持的代码被认为还包含传统的保留/释放方法逻辑,并且可以加载到任何应用程序中。垃圾收集仅在 Mac OS X 10.5 及更高版本上受支持。 [GCC_ENABLE_OBJC_GC,-fobjc-gc | -fobjc-gc-only]
关于objective-c - GC 能力不匹配0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605865/