如何将一个类从一个静态库弱导入另一个库(Objective-C)

如何将一个类从一个静态库弱导入另一个库(Objective-C),objective-c,linker,static-libraries,Objective C,Linker,Static Libraries,我有一个静态库,我们称之为libSuperCool.a。在它里面,我希望使用千禧媒体的SDK libMMSDK.a。现在,出于个人原因,我希望我的库不会吸收任何SDK的代码,我希望任何使用libsupercol的应用程序都能够编译,无论是否链接libMMSDK.a;因此,libsupercol不会链接到libMMSDK 默认情况下,libsupercol内部对libMMSDK的任何引用都是强引用,要求链接libMMSDK,否则无法成功链接可执行文件。例如,我的一个源文件创建类型为MMReques

我有一个静态库,我们称之为libSuperCool.a。在它里面,我希望使用千禧媒体的SDK libMMSDK.a。现在,出于个人原因,我希望我的库不会吸收任何SDK的代码,我希望任何使用libsupercol的应用程序都能够编译,无论是否链接libMMSDK.a;因此,libsupercol不会链接到libMMSDK

默认情况下,libsupercol内部对libMMSDK的任何引用都是强引用,要求链接libMMSDK,否则无法成功链接可执行文件。例如,我的一个源文件创建类型为
MMRequest*
的变量

nm -m libSuperCool.a |grep MMReq
    (undefined) external _OBJC_CLASS_$_MMRequest
我在网上找到了一篇非常有趣的帖子,它解释了如何将ObjC类引用转换为弱引用:使用
asm(“.weake_reference”\u ObjC_class\u$\u MMRequest”)
在.m文件中,这样的引用将变得很弱

nm -m libSuperCool.a |grep MMReq
    (undefined) weak external _OBJC_CLASS_$_MMRequest
然而,在完成这项工作后,我尝试构建一个链接libsupercol的简单应用程序。我仍然在_OBJC_CLASS_$\u MMRequest上得到未定义的符号错误

是否需要在链接时解析符号?如果需要,原因是什么?我可以很容易地将变量声明为
id
,并获得最终结果,这毕竟是Objective-C。

来自:


-未定义的动态\u查找
添加到其他链接器标志。

我没有阅读所有内容,但您只能对动态库进行弱链接。这很可能就是答案,尽管我不再从事需要我调查场景的工作。