gpt4 book ai didi

ios - 通过交叉引用多个静态库与 iOS 应用程序链接错误

转载 作者:行者123 更新时间:2023-11-28 17:47:46 26 4
gpt4 key购买 nike

我正在将一个 Xcode iPhone 项目拆分为多个较小的项目以实现代码重用。结构如下所示:

+------------+
| App |
+------------+
|
+------------------+
| |
+--------------+ +--------------+
| Static Lib A | | Static Lib B |
+--------------+ +--------------+
| |
+----------------+
|
+--------------+ +----------------+
| Static Lib Z |--| Static Lib KAL |
+--------------+ +----------------+

一切都正确编译,但一旦链接应用程序,链接器就无法找到 KAL(开源日历库)库的 2 个符号。每个库都有一个交叉引用,所有文件都添加到“链接二进制文件与库”构建阶段。

错误是:

undefined symbol :
“_OBJC_CLASS_$_KalViewController”,引用自: libA.a(AViewController.o) 中的 objc-class-ref-to-KalViewController
“_OBJC_CLASS_$_KalDate”,引用自: libA.a(AViewController.o) 中的 objc-class-ref-to-KalDate
ld: 找不到符号
collect2: ld 返回 1 退出状态

我在 LibA 的 AViewController 中使用了 LibZ 的一个类,而他又在 LibKAL 中使用了一个类。

PS:A和B的分离只是因为不是每一个App的构建都需要两者提供的功能。

最佳答案

好吧,就像许多人一样,我花了几个晚上试图解决这个问题,我设法让它在放置后几乎立即工作。
问题是,当我添加对库项目的引用时,Xcode 将项目本身添加为依赖项,而不是存档文件。这是链接器(显然)找不到符号的原因。

关于ios - 通过交叉引用多个静态库与 iOS 应用程序链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463829/

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