【问题标题】:Implementing Static Libraries In iPhone在 iPhone 中实现静态库
【发布时间】:2009-07-14 10:31:45
【问题描述】:

我在this link 之后创建了一个静态库。

但是我在使用图书馆时遇到了问题。有关如何在 iPhone 项目中使用静态库的参考,我关注了this link

但我仍在为“如何在任何其他 iPhone 项目中实现静态库?”而苦苦挣扎。问题。

谢谢大家。

【问题讨论】:

  • 您遇到了什么问题?
  • 这是一般的 Xcode 问题,不仅仅是 iPhone。我至少会用“xcode”重新标记它。

标签: iphone objective-c xcode static-libraries


【解决方案1】:

您可以像在帖子中那样使用跨项目引用,但这有几个低谷。

我使用的这个设置通常适用于 Xcode(不仅适用于 iPhone),并添加了编译时静态库版本控制。

我将我的静态库放在 ~/Library/MyLibraries/ 中,即 .a 存档及其公共标头。这样你就可以拥有不同的版本:

~/Library/MyLibraries/
                     /MyLib-1.0.0/Headers/header1.h
                                         /header2.h
                                 /libmylib.a
                                 /libmylib_debug.a
                     /MyOtherLib-2.1.0/Headers/...
                                      /libmyotherlib.a

然后在 Xcode 设置中添加用户变量:

LIBRARIES_DIR      $(USER_LIBRARY_DIR)/MyLibraries
MYLIBRARY_LIBROOT  $(LIBRARIES_DIR)/MyLib-1.0.0

并修改设置

HEADER_SEARCH_PATHS $(MYLIBRARY_LIBROOT)/Headers
OTHER_LDFLAGS       $(MYLIBRARY_LIBROOT)/libmylib.a

现在更改 MYLIBRARY_LIBROOT 以选择您的库版本。更多关于我的blog post

如果您想保持简单,只需编译库并设置 HEADER_SEARCH_PATHS 和 OTHER_LDFLAGS。

【讨论】:

  • 这种方法的缺点(这可能是一个好处,取决于您的需要)是静态库在您编译使用它们的项目时不会自动重新编译。
  • 当然可以。但是您想分别开发、调试和测试您的库,这就是拥有一个真正的库的意义所在。无论如何,你很快就会失去同步...... ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多