深入理解iPhone静态库(手把手教)
来源:互联网 发布:全球华人网络春晚2017 编辑:程序博客网 时间:2024/05/16 06:05
Xcode4中使用静态库
1. 创建一个工作区:".xcworkspace"
2. 将项目添加到工作区(新建/添加现有项目)
3. 向应用程序target添加静态库,从Workspace
4. 打开 “Build Settings” 标签,设置 “User Header Search Paths” 项的值为“$(BUILT_PRODUCTS_DIR)”,并选中“Recursive”框
5. 设置“Other Linker Flags”项的值为“-ObjC”
6. 打开scheme,设置build顺序,将静态库添加进来,并放在程序前面
7. 从静态库项目中拖动公共头文件到应用程序项目,这些头文件不需要被包括在target中
创建静态库
1. 将所有需要公开的头文件在“Target Membership”中将其设置为“public”
2. 打开 “Build Settings” ,设置“InstallationDirectory”的值为“$(BUILT_PRODUCTS_DIR)”;并设置“SkipInstall”的值为“Yes”
3. 设置“Public Headers Folder Path”的值为 “$(TARGET_NAME)”
参考原文:http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/
下边是各种使用经验:
(一)
1、以xcode的静态库文件模板创建静态库文件;
2、注意类文件的命名方式,以免和工程下的类冲突;
3、把需要作为接口的头文件声明为public,在xcode的target membership设置里面;
4、在静态库文件的引用target里面设置静态库文件的安装目录为当前工程的编译目录下,使得当前工程目标能在此目录下找到静态库文件,当前工程编译目录引用为$(BUILT_PRODUCTS_DIR);
5、设置静态库的公共头文件目录路径,使之在当前工程编译后放置于以静态库命名的文件目录下,即使得第4步的能找得到静态库文件的接口;
6、如果静态库中存在Objective-C风格的类文件,需要在静态库的build-setting中的Other linkerflags中加上-ObjC,如果存在Category,还应加上-all_load或-force_load。
(二)
概要
- AppStore中的 iphone 程序不允许使用动态链接库。
- 如果需要在隐藏代码的前提下提供某些功能,可以使用静态链接库。
- 右击target,选择add -> newtarget
- 在弹出的 NewTarget 界面中选择Cocoa Touch -> StaticLibrary ,为新 library 取个名字。
- 将源文件添加到这个库。可以直接拖动现存源文件,也可以右击 -> add。注意选择新建的库为添加的 target 。
- 设置原项目,令其使用新建的库。
- 右击原项目的 target ,选择 getInfo 。
- 选择 General 选项卡
- 向 linked libraries 中添加新创建的库 (即添加 .a 文件)。
- 编译新建的静态库以产生 .a 文件。(右击静态库的 target ,选择build)
- 编译原项目,若可以调用静态库中的方法则添加成功。
- 可以直接删除静态库中的源代码,只提交链接库文件(.a),这样原项目仍然可以编译执行。
- Mac OS 下的静态链接库文件与linux 同样使用 .a 扩展名。
原参考处
下边的是
http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4
的汉化翻译 加理解
http://xiaoruanjian.iteye.com/blog/912478
- 深入理解iPhone静态库(手把手教)
- 深入理解iPhone静态库(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone静态库(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone静态库(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone静态库(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone静态库
- 深入理解iPhone静态库
- 深入理解iPhone静态库
- 深入理解iPhone静态库
- 深入理解iPhone静态库
- 深入理解iPhone静态库(转)
- 深入理解iPhone委托模式兼谈iPhone生命周期(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone屏幕双缓冲技术(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)
- 深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)
- IOS 安卓 架构解析
- 1035. DNA matching
- 我的Android学习开发历程--HelloWorld项目的创建
- 在苹果手机上开发软件是用什么方法进行软件加密防盗版的?
- android 解决wifi断线不稳定的问题-终极办法
- 深入理解iPhone静态库(手把手教)
- socket学习: sockAddr_t 结构
- MVC3-RAZOR-玩转WebImage
- 在 Word 2007 文件設定多阶层自动编号的方式
- CFRunLoop
- VC++获得当前系统时间的几种方案
- ubuntu 10.04LTS 下openoffice
- classloader
- Ubuntu上使用Heroku 云服务发布有数据库的Rails应用