【问题标题】:Build and guard against missing library using Objective-C使用 Objective-C 构建并防止丢失库
【发布时间】:2013-05-01 09:55:53
【问题描述】:

我有一个库 (lib.a) 和一个头文件 (lib1.h)。问题是库太大,只有一小部分用户需要它。

  • 是否可以在没有库的情况下构建我的 Xcode 项目?目前我得到:

ld: 找不到 -llib 的库

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

  • 是否可以防止使用 Xcode 项目中不存在的库?我found the following,但我不确定它是否足够(假设我可以在没有 lib 的情况下构建项目):

    if ([MyLibABC class]) { ... } else { NSLog(@"Add Lib.a"); }

旁注:

在 Java 中,我会 use reflection 调用库中实现的方法 (lib.jar),如果库不存在,我会捕获 ClassNotFoundException 并显示错误消息或其他内容 (lib.jar缺少,请查阅文档)。

我的目标是 >= iOS5。

【问题讨论】:

    标签: iphone ios objective-c ios5 ios6


    【解决方案1】:

    与支持动态库的桌面操作系统不同,iOS supports only static libraries。解决这个问题的唯一方法是构建两个目标 - 一个使用库,另一个不使用。

    您可以使用conditional compilation 从同一组源构建两个目标。在有条件地编译出对“大库”的引用的版本中,不会有对它的引用,因此链接器不会抱怨缺少引用。

    【讨论】:

      猜你喜欢
      • 2016-10-28
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      相关资源
      最近更新 更多