iPhone - XCode 4 链接器错误,没有方法调用或对象使用

问题描述 投票:0回答:1

我有一个项目,其中包含共享库作为源文件。
一些库类需要包含一些框架(例如已知的 Apple Reachability)。
这些框架未包含在项目中,因为我不使用需要它们的类/方法。
我有一个引用所有库标头的 MyStandardLib.h,它包含在我的应用程序的 .pch 中。

但是...

构建我的应用程序时,链接器会为我在应用程序中不使用/调用的那些对象生成链接错误,因此从逻辑上讲它们不应该被链接。

enter image description here

举个例子,如果我从项目中删除有问题的类和框架,一切都会正常工作。

如果我添加所需的框架:

  • 为每个项目都这样做是疯狂的,因为我不会使用类
  • 它增加了我的应用程序文件大小,但毫无用处(26 Ko -> 1.2 Mo)

如何避免这些链接器错误,并避免不应该发生的链接:

  • 将我的库保留在项目中(我不需要预编译库)
  • 不需要包含所有那些无用的框架,直到我真正需要它们为止
iphone xcode compiler-errors linker
1个回答
0
投票

这些错误的原因很明显,因为您在项目中包含的框架确实需要其他框架(根据您提供的信息,它们使用:ReachabilityCFNetwork框架和CoreLocation框架)

发生的事情是,当编译链接你的对象时(在编译器的意义上),它也在你添加的框架中寻找对象'提到',但它没有找到它们,因为它们还没有被包含到你的项目。

如果您使用与框架 B 链接的框架 A,那么如果您的应用程序 C 使用框架 A,它也需要框架 B,因为框架并不完全是自包含的。

如果您的代码在没有这些框架的情况下进行编译,并且您的应用程序需要占用较小的空间,只需将它们从构建阶段中删除即可。

但是,如果没有这些框架就无法编译,您将别无选择,只能将它们包含在您的项目中,因此,会增加应用程序所需的最终空间。

© www.soinside.com 2019 - 2024. All rights reserved.