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

标签 iphone compiler-construction linker compiler-errors

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

但...

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

例如,如果我从项目中删除了隐含的类和框架,那么一切都会很好。

如果我添加所需的框架:

  • 为每个项目执行该操作很疯狂,因为我不会使用
  • 它增加了我的应用程序文件大小,没有任何用处(26 Ko-> 1.2 Mo)

  • 如何避免这些链接器错误,并避免不应发生的链接:
  • 使我的库保持在项目中的状态(我不需要预编译的库)
  • 在我真的需要它们之前,不需要包括所有那些无用的框架
  • 最佳答案

    这些错误的原因很明显是因为您要包含在项目中的框架确实需要其他框架(可以使用的框架:ReachabilityCFNetwork框架和CoreLocation框架)

    发生的情况是,当编译链接您的对象(从编译器的意义上来说)时,它也在所添加的框架中查找“提及”的对象,并且未找到它们,因为它们尚未包含在项目中。

    如果您使用与框架B链接的框架A,则如果应用程序C使用框架A,则它也需要框架B,因为框架并非完全独立。

    如果您的代码在没有这些框架的情况下进行编译,而您的应用程序需要占用的空间很小,则只需从构建阶段中删除它们,您就可以开始使用了。

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

    关于iphone - iPhone-XCode 4链接器错误,没有方法调用或对象使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308341/

    相关文章:

    iphone - 如何在 iOS 的 MPMoviePlayerViewController 中禁用全屏

    iphone - "Admin"苹果账户可以提交应用到苹果商店吗?

    linux - 如何读取头文件 block gcc 编译器放入 .o .a 和可执行文件

    javascript - 如何使用 jQuery/JavaScript 检测 ios 设备并仅隐藏 iPhone 和 iPad 的 Bootstrap 模式?

    c++ - 编译器警告和错误是如何定义的,它们是否包含在标准中

    c - 如何确定此可执行文件在启动时崩溃的原因? (*nix 上的 C)

    ubuntu - 解释 SUSE SLED 11 SP2 与 Ubuntu 14.04 上的 g++ 之间的区别

    c++ - 我无法链接到 libfortuna 库

    windows - 如何使用 CMake 链接 Windows 系统库?

    ios - 在 UITableView 中重用已加载的标题 View