zoukankan      html  css  js  c++  java
  • ios开发静态库生成

    首先简单说下哈: 库就是程序代码的集合,是共享代码的一种方式

     分为开源库(sd,mi,afn)和闭源库(看不到具体实现的)

    闭源库分为静态库和动态库

    静态库: .a 和 .framework

    动态库: .dylib 和 .framework

    静态库和动态库在使用上的区别

    静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝 

    动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存 

    注意啦: 使用自己制作的动态库无法上传appstore

    接下来讲讲制作.a的方法

    第一步: 新建一个工程选择如下:

    之后下一步啦新建工程。

    打开工程后干掉声称的.h 和.m文件如下

    第二部:把需要封装的类拖到工程中来

    然后选择需要暴露出来的 .h 文件, .m 文件会自动编译到 .a 文件中

    选择真机设备,然后 Command+B 编译, libMJRefresh.a 文件从红色变为黑色

    就成功了, show in finder  就是需要的库啦。

    这里需要注意的是: 选择 真机运行的出来的是  真机运行需要的.a文件, 只能运行在真机上, 跑模拟器就会报错。

    因为手机的cpu架构和电脑的不同造成的。。

    解决方法:

    合并真机command +B出来的.a  和模拟器command +B出来的.a

    合并静态库让模拟器和真机都能用的招

    lipo -create /Users/gti/Desktop/Debug-iphoneos/libJTK.a /Users/gti/Desktop/Debug-iphonesimulator/libJTK.a -output /Users/gti/Desktop/libJTK.a

    lipo -create :固定的命令   

    /Users/gti/Desktop/Debug-iphoneos/libJTK.a   真机跑出来的.a文件的位置   这位置选中.a 文件直接拖到终端就ok

    /Users/gti/Desktop/Debug-iphonesimulator/libJTK.a   模拟器跑出来的.a文件的位置 

    output  固定命令行

    /Users/gti/Desktop/libJTK.a   合并ok 的最终文件的位置以及名字

    使用 .a

    如何使用 .a

    直接将 .a 、 .h 、资源文件拖拽到其他项目中即可

  • 相关阅读:
    ES6入门之Promise对象
    Iterator和ListIterator区别
    try_catch_return
    T-SQL查询进阶--详解公用表表达式(CTE)
    Node.js安装及环境配置之Windows篇
    Java中Lambda表达式的使用
    windows下redis 开机自启动
    IDEA快捷键(修改成eclipse版)+Templates
    oracle赋予一个用户具有查询另一个用户所有表数据
    sql触发器
  • 原文地址:https://www.cnblogs.com/godlovexq/p/5569889.html
Copyright © 2011-2022 走看看