0

我有与 libA 链接的 libX,以及也与 libA 链接的 libY。现在我需要在同一个项目中使用 libX 和 libY,所以它们链接到同一个应用程序中。为了争论,假设 libA 的大小为 5 MB,而我正在构建一个 iOS 应用程序。

我在这里读到,在这种情况下库之间没有冲突,因为此示例中的 libA 将包含在 libX 和 libY 中。但这也会使应用程序的大小显着增加 10 MB,而不是 5 MB。

为了不在应用程序中包含两次 libA,我需要做什么?有编译器开关吗?

除此之外,在如何设置库和将库划分为 Xcode 项目方面我能做些什么,以便我最终只链接一次 libA?例如,我可以在不链接到 libA 的情况下构建 libX 和 libY,假设最终项目会将 libA 添加为链接库吗?

通常,我只会将 libA 构建为动态库,但据我所知,这在 iOS 上是不允许的。

4

2 回答 2

2

AFAIK 说静态库的“libX 链接到 libA”是错误的。静态库只是目标文件的存档。链接应用程序时实际链接指责。所以没有重复的库。

于 2010-11-01T10:44:30.240 回答
0

从依赖项中删除(可能的)链接阶段,然后将所有必要的库与最终的可执行文件链接。

于 2010-11-01T10:44:23.970 回答