如何在Xcode中使用静态库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Xcode中使用静态库相关的知识,希望对你有一定的参考价值。

XCode项目中添加静态库的方法:
1、右击target,选择add -> new target
2、在弹出的 NewTarget 界面中选择Cocoa Touch -> Static Library ,为新 library 取个名字。
将源文件添加到这个库。可以直接拖动现存源文件,也可以右击 -> add 。注意选择新建的库为添加的 target 。
3、设置原项目,令其使用新建的库。
4、右击原项目的 target ,选择 getInfo 。
5、选择 General 选项卡。
6、向 linked libraries 中添加新创建的库 (即添加 .a 文件)。
参考技术A 使用静态库
加上一个工程,我这里命名为mainprog,让它依赖testlib,我在主程序中加了一条#import "MyClass.h"语句,只要这条语句能够编译,整个工作区和工程应该设置的就没问题了。
(1)设置依赖关系
在mainprog工程的build phases中,将libtestlib.a加到link Binary With Libraries中。

(2)添加静态库的头文件搜索路径
这一步最迷惑人了,先在Build Settings中,将User Header Search Paths设置为“$(BUILT_PRODUCTS_DIR)”。

然后双击那个显示“<Multiple values>”的地方,弹出一个对话框(这个窗口隐藏的相当深,我找了足足半天才发现,一开始还以为我的xcode版本有点低呢),把Recursive勾上。

(3)设置Scheme
加上了依赖关系,按照以前VisualStudio的习惯,整个构建过程应该按照这些依赖关系的顺序来构建了吧,可发现xcode现在还没有这么聪明,需要再设置一下scheme,据说(从apple的xcode文档中查的)勾上那个Archive非常重要。

(4)让自动完成功能正常
待完成。
全部步骤完成了,选择mainprog的scheme,应该能够构建成功了!

使用 XCode 3 对 iPhone 静态库进行单元测试

【中文标题】使用 XCode 3 对 iPhone 静态库进行单元测试【英文标题】:Unit testing an iPhone static library with XCode 3 【发布时间】:2009-07-07 18:46:11 【问题描述】:

我正在为 iPhone 编写一些静态库,并且还希望拥有一套单元测试。 XCode 3 为静态库和单元测试提供了模板,但我想知道它们应该如何在静态库项目中组合在一起?

在我的静态库项目中,我创建了一个用于单元测试的目标,但还希望创建一个可执行文件来启动单元测试,而不是针对静态库中的类运行。

这样做的程序是什么?

【问题讨论】:

【参考方案1】:

请注意,某些类别的测试(例如任何依赖于系统调用(如 [UIApplication sharedApplication] 工作的任何东西)都需要单独的目标,而纯逻辑测试则不需要。

使用 Unit Test 创建一个新项目并查看添加了什么 - 基本上您可以轻松地做同样的事情,创建一个新目标并选择“Unit Test Bundle”作为目标类型。

【讨论】:

太棒了 - 我现在可以在构建时执行这些 - 但我如何调试所述单元测试? 还请任何坚持这一点的人查看此线程上的更多详细信息:***.com/a/11267670/662605【参考方案2】:

您必须在单元测试目标中添加所有与 .m 相关的文件。 (只需拖放!)

【讨论】:

【参考方案3】:

如果人们在使用静态库时仍然遇到问题:

我创建了一篇文章来解释如何创建静态库以及如何在项目中使用它们:

Xcode:关于如何使用静态库的完整说明: http://www.sodeso.nl/?p=822

对于静态库的单元测试部分,我没有说明如何设置它,但我确实创建了一个静态库模板,该模板使用 Google Toolkit for Map 单元测试框架,您可以下载并添加到你的 Xcode 安装:

Xcode:带有 Google Toolkit for Mac 测试框架的静态库模板: http://www.sodeso.nl/?p=982

【讨论】:

以上是关于如何在Xcode中使用静态库的主要内容,如果未能解决你的问题,请参考以下文章

如何在静态库项目中使用 XCode 性能工具?

使用 XCode 3 对 iPhone 静态库进行单元测试

如何将 .a C 静态库添加到 Xcode 并在那里使用它? [复制]

Xcode生成静态库和bundle

Xcode4 从现有项目创建静态库

Xcode 4:如何将静态库目标依赖添加到项目中