gpt4 book ai didi

objective-c - 具有 ARC 支持的静态库链接到导致链接器错误的非 ARC 项目

转载 作者:太空狗 更新时间:2023-10-30 03:11:30 25 4
gpt4 key购买 nike

我有一个使用支持 ARC 的静态库的非 ARC 项目。这是一个受支持的场景,因此一切正常。也就是说,直到我在 4.x 设备(包括模拟器)上运行代码。在这种情况下,代码会因以下链接器错误而崩溃:

dyld: lazy symbol binding failed: Symbol not found: _objc_storeStrong
Referenced from: /Users/zoul/Library/Application Support/iPhone Simulator/4.3.2/Applications/…/Demo.app/Demo
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation

只要一些支持 ARC 的代码尝试调用 _objc_storeStrong 函数,就像在 init 方法中一样(self = [super init] )。将主项目转为ARC解决了问题,但我想知道是否有其他解决方案。

最佳答案

我假设工具链可能已经添加了必要的链接库,以便 ARC 正常工作。所以链接器转录本可能包含这条信息。如果应用程序本身的项目未启用 ARC,默认情况下您可能不会获得这些,但您仍然可以通过明确定义它们来链接到它们。

查看构建记录,您确实可以在那里找到合适的链接器标志:它称为 -fobjc-arc(就像相关的编译器标志一样)。当您将此设置添加到其他链接器标志时,链接器会将 ARC 库包含在主要构建产品中,并且代码应该可以正常运行。

关于objective-c - 具有 ARC 支持的静态库链接到导致链接器错误的非 ARC 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8756418/

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