首先声明: 本人屌丝一枚,如有不对不妥之处,请大牛指正!

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 位模拟器就可以运行了!!

 

Xcode5创建自己的静态库详解的更多相关文章

  1. xcode 4 制作静态库详解

    合并.a文件,制作通用静态库 这二个库一个是用于真机运行的一个是用于模拟器运行的.其实我们可以利用lipo将这二个文件打包成一个通用的a文件.命令如下: 将/Users/user/Library/De ...

  2. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  3. Linux下Gcc生成和使用静态库和动态库详解

    参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...

  4. Linux-Gcc生成和使用静态库和动态库详解

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  5. 【转】 iOS 开发之静态库.a和动态库详解 -- 不错

    原文网址:http://blog.csdn.net/lxl_815520/article/details/52154331 一, 简单介绍 1.什么是库 库是程序代码的集合,是共享程序代码的一种方式 ...

  6. 【转】Linux下gcc生成和使用静态库和动态库详解

    一.基本概念 1.1 什么是库 在Windows平台和Linux平台下都大量存在着库. 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不 ...

  7. iOS 静态库和动态库(库详解)

    什么是库 ? 库就是程序代码的集合,将N个文件组织起来,是共享程序代码的一种方式.库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行. 库的分类 开源库:源代码是公开的,可以看到每个实现 ...

  8. C++静态库与动态库详解

    1 库的概念? 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库. 2 动态库与静态库的概念? 先回顾一下编译过程: 2.1 静态库 静态库在链接阶段,会将汇编生成的目 ...

  9. MySQL5.6的4个自带库详解

    MySQL5.6的4个自带库详解 1.information_schema详细介绍: information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数 ...

随机推荐

  1. CSS Position 定位属性介绍

    1.介绍 1.1 说明 Position 属性:规定元素的定位类型.即元素脱离文档流的布局,在页面的任意位置显示. 1.2 主要的值 ①absolute :绝对定位:脱离文档流的布局,遗留下来的空间由 ...

  2. 谓词的使用 -ios

    #import <Foundation/Foundation.h> @interface Person : NSObject<NSCopying> @property(nona ...

  3. KindEditor ---富编辑器

    关于 演示 下载 文档 成功案例 English 文档 Documentation  http://kindeditor.net/doc3.php 当前位置: 首页  > 文档 文档 Docum ...

  4. Code First 约定

    Code First 约定 借助 Code First,可通过使用 C# 或 Visual Basic .NET 类来描述模型.模型的基本形状可通过约定来检测.约定是规则集,用于在使用 Code Fi ...

  5. linq字符串搜索条件,排序条件-linq动态查询语句 Dynamic LINQ

    在做搜索和排序的时候,往往是前台传过来的字符串做条件,参数的数量还不定,这就需要用拼sql语句一样拼linq语句.而linq语句又是强类型的,不能用字符串拼出来. 现在好了,有个开源的linq扩展方法 ...

  6. Linq 多条件连接

    var total = (from a in all                              join g in group_M                            ...

  7. unity, 非public变量需要加[SerializeField]才能序列化

    非public变量需要加[SerializeField]才能序列化 例如: MonoBehaviour中: [SerializeField] private float m_xxx; 在相应的Cust ...

  8. GridView 控制分页页码间距

    来源:http://auv2009.blog.163.com/blog/static/68858712200992793853431/ 技巧1:在分页区中改变当前页码的样式或高亮显示页码 一个简单的办 ...

  9. 由浅入深探究mysql索引结构原理、性能分析与优化 转

    第一部分:基础知识 第二部分:MYISAM和INNODB索引结构 1. 简单介绍B-tree B+ tree树 2. MyisAM索引结构 3. Annode索引结构 4. MyisAM索引与Inno ...

  10. org.pentaho.di.ui.core.widget.PasswordTextVar

    package org.pentaho.di.ui.core.widget; import org.eclipse.swt.SWT; import org.eclipse.swt.events.Mod ...