iPhone 项目使用静态库(xcode使用)
转自iPhoneGeek 原文链接
由于Apple禁止在iPhone中使用外部框架或动态链接库,所以要重用代码(第三方库或自己的代码)只能选择如下方法:
- 直接将代码加入项目。这种方法有点笨。例如,你的一段代码被五个项目共享,如果你发现一个小bug,那么你需要更改五个地方。够麻烦吧?
- 使用静态库。这是我经常使用的方法。但Xcode并未为iPhone提供静态库的模板。有两种解决方法:
- 如果你的项目主要是使用Objective-C(C/C++也可使用,只要做些简单修改),那么你可使用现成的Xcode 模板。
- 通过Mac OS X栏下的Static Library中的BSD Static Library建立一个静态库。但要用于iPhone项目,还需做些修改(需要将项目的Base SDK改为iPhone)。
![](http://www.cocoachina.com/cms/uploads/100331/8_133850_1.jpg)
![](http://www.cocoachina.com/cms/uploads/100331/8_133925_1.jpg)
但怎样在项目中链接静态库呢?如果你熟悉Xcode,那么你可跳过此段。很简单:
- 指定静态库的头文件路径Head Search Paths。
- 添加静态库到Xcode项目中。
![](http://www.cocoachina.com/cms/uploads/100331/8_134001_1.jpg)
![](http://www.cocoachina.com/cms/uploads/100331/8_134052_1.jpg)
就这么简单。但是且慢,万事大吉了吗?如果你要修改你的静态库呢?你需要从Find中找到你的静态库项目,打开它修改。有点麻烦,不能像 Visual Studio一样将相关项目包括在应用项目中吗?答案是:可以,虽然还是没有Visual Studio中的工作空间好用。但你可以从Xcode中直接打开相关的静态库。方法是使用Xcode的Cross-Project Reference(跨项目参考)。
- 将静态库的Xcode项目加入到当前项目。
- 右击Targets下本项目,添加到静态库项目的关联。
- 在项目下,扩展静态库项目,拖动xxxx.a到Targets下的Link Binary With Libraries。
![](http://www.cocoachina.com/cms/uploads/100331/8_134138_1.jpg)
![](http://www.cocoachina.com/cms/uploads/100331/8_134210_1.jpg)
![](http://www.cocoachina.com/cms/uploads/100331/8_134233_1.jpg)
这样你就可以从当前项目下,双击静态库的项目来打开和修改静态库的代码了。