代码改变世界

在 Xcode 4.3 中使用静态库的方法。

2012-07-24 17:27  Mr.Xer  阅读(215)  评论(0编辑  收藏  举报

做了几个App之后,想把工作过程中的一些公共部分抽取出来,便于以后复用,提高效率。

今天试了一下在 Xcode 中使用静态库的方法,发现还有点小麻烦啊,特将过程记录一下,省得以后忘了。

 

运行环境:Xcode 4.3 Build 4D1002

 

1.准备工作:

1)创建一个名为:StaticLibTest 的 workspace;

2)创建一个名为:CallLibApp 的 Single View Application;

3)创建一个名为:MyLib 的 Cocoa Touch Static Library,Group 选择 StaticLibTest;

 

2.Lib 设置:

1)Scheme 中选择“MyLib > iOS Device”,然后编译;

此时在 Products 文件夹中的 libMyLib.a 由红变黑;

2)进入命令行

 

[plain] view plaincopy
  1. cd /Users/xxx/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos  
  2. lipo -info libMyLib.a  

输出:

 

 

[plain] view plaincopy
  1. Non-fat file: libMyLib.a is architecture:armv7  

 

3)选中 MyLib.h,在 Target Membership 中选中 Mylib,并将属性修改为 Public,重新编译;

此时在 Debug-iphoneos 文件夹中会增加一个 usr/local/include 的文件夹,其中存放着 MyLib.h 文件;

4)在 MyLib 的工程属性中,选择 Targets - MyLib - Build Settings 然后选中“Public Headers Folder Path”将属性修改为:“$(TARGET_NAME)”,如下图所示:

5)重新编译,此时在 Debug-iphoneos 文件夹中会增加一个名为 MyLib 的文件夹,MyLib.h 存放在其中,这样方便应用程序调用。

 

说明:以上设置只要按照蓝色字体的三个步骤就可以了,其他部分仅供参考。

 

3.App 设置:

1)在 App 的 Targets - Build Phases - Link Binary With Libraries 中增加 libMyLib.a 的静态库;

下面到了关键的步骤了,呵呵,就是如何让 App 能够找到 .h 文件。

2)在 App 的 Build Settings 中找到 “User Header Search Paths”,双击,并输入:$(BUILT_PRODUCTS_DIR) 如下图所示:


记得要勾上“Recursive”;

 

搞定收工。龙年大吉!!!

 

转载自:http://blog.csdn.net/liufan321/article/details/7210943#