zoukankan      html  css  js  c++  java
  • Xcode5创建自己的静态库详解

    首先声明: 如有不对不妥之处,请大牛指正!

    1.静态库工程的建立:

    Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个名为:MaxLib 的工程。

    2.工程建立

    添加简单的两个方法"- (void)max:(int)a :(int )b;"和"+ (void)print;"做示例 ;在*.m文件中的实现这两个方法 。这样编译出来的libMaxLib.a 就可以被其他的IOS小伙伴进行调用了。

    方法的简单实现:

    #import "MaxLib.h" 

    @implementation MaxLib

    - (void)max:(int)a :(int)b

    {

        a > b ?(NSLog(@"Max is %d",a)) :(NSLog(@"Max is %d",b));

    }

     + (void)print

    {

        NSLog(@"Hello");

    @end

    3.注意要编译两次

    一次是选择真机编译;一次模拟器编译;注意设置版本如下所示;编译之后libMaxLib.a会变成黑色;

     

    4.查看.a文件

    libMaxLib.a 上右键show in finder 可以看到该文件;

    返回上级目录可以看到右边目录下是模拟器用的 libMaxLib.a文件

    5,将真机和模拟器用的两个.a 合并成为一个通用的.a文件 

      在终端输入命令 : lipo -create /..... *.a /...../*.a -output /Users/..../*.a ;注意自己文件所在的路径

    ( 注意 可以使用命令 :lipo -info /..... *a 查看.a 所支持的架构 e.g. :

    hezhujindeMacBook-Pro:~ hezhujin$ lipo -info /Users/hezhujin/Desktop/libMaxLib.a 

    Architectures in the fat file: /Users/hezhujin/Desktop/libMaxLib.a are: i386 armv7 armv7s arm64 )

    6.最后我们来就可以简单使用自己创建的静态库了

    新建工程,导入我们静态库工程的MaxLib.h 文件,然后在这个工程的Build Phases的Link Binary With Library里添加合并的 libMaxLib.a 文件;

    简单代码示例 

    #import "HZJViewController.h"

    #import "MaxLib.h"

    @interface HZJViewController ()

    @end

    @implementation HZJViewController

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        int a = 'A' ;

        int b = 100 ;

        [MaxLib print];

        MaxLib * maxlib = [[MaxLib alloc]init];

        [maxlib  max:a :b ];

        

    // Do any additional setup after loading the view, typically from a nib.

    }

     运行结果:

    2014-06-22 21:26:37.136 TestView[2572:60b] Hello

    2014-06-22 21:26:37.137 TestView[2572:60b] Max is 100

    补充:要支持arm64 ,选择64位模拟器编译得到.a 在和之前的合并的.a 合并成新的.a 这样在64 位模拟器就可以运行了!!

     

  • 相关阅读:
    追寻缺失的大学精神 一个民族需要关注天空的人
    图论简介
    18个分形图形的GIF动画演示
    平行宇宙
    eclipse经常出现——未响应!!!
    单例模式
    Java内存区域
    编译与解释(java)
    正则表达式判断QQ号格式是否正确
    正则表达式判断手机号格式是否正确
  • 原文地址:https://www.cnblogs.com/zhujin/p/3803087.html
Copyright © 2011-2022 走看看