美文网首页
静态库制作和使用

静态库制作和使用

作者: 亡灵诅咒 | 来源:发表于2016-08-10 15:10 被阅读35次

    静态库总结

    介绍

    -1.库的分类
    -开源库:类似AFN,SDWebImage等第三方框架,可以看见具体实现文件
    -闭源库:无法具体看见实现文件
    -2.静态库和动态库的区别
    -存在形式:
    -1.静态库:.a和.framework
    -2.动态库:.dylib和.framework
    -优缺点
    -1.静态库:静态库在连接时,会被完整的复制到可执行文件中,被多次使用就会被多次复制
    -2.动态库:不会复制,只存在一份,程序在运行时会动态的加载到内存中,只加载一次.但是动态库不允许上架(wwdc2014上苹果开放了动态加载dylib接口,开放了动态库挂架->插件式开发)

    .a静态库的制作和使用

    -1.xcode中选择Static Library制作静态库
    -2.将需要暴露的文件在Build Phases -> Copy Files中添加
    -3.不同CPU对应着不同的编译器架构
    -模拟器:
    -4s - 5 i386 32位
    -5s - 6P x86_64 64位
    -真机:
    -3s - 4s armv7
    -5 - 5c armv7s
    -5s - 6P arm64
    -获取文件支持架构
    -lipo -info 文件路径
    -如何支持多种架构?
    -Build Setting -> Build active -> NO
    -合并静态库
    -lipo -crete 模拟器静态库.a文件路径 真机静态库.a文件路径 -output 合并.a文件
    -Debug和Release版本下静态库的生成
    -edit scheme -> 选择Debug/Release模式
    -4.使用
    -直接将合并的.a文件以及头文件拖入工程中.

    .framework库的制作和使用

    -1.打开工程,选择Framework来制作.framwwork库
    -2.在Build Phases -> Headers中添加需要暴露的头文件
    -3.在Build Setting -> Build active -> No选择不止编译活跃的架构
    -4.编译后获取真机和模拟器下.framework文件,合并静态库
    lipo -create .framework下工程路径 .framework下工程路径 -output 合并文件
    -5.使用合并后的库General -> Embedded Binaries中添加库后使用,会直接报错Reason: image not found,因为这样合并生成是一个动态库,如果要获取.framework的静态库,那么需要在Build Settings -> mach-O type ->选择Dynamic Library(默认动态库)/Static Library(静态库)

    相关文章

      网友评论

          本文标题:静态库制作和使用

          本文链接:https://www.haomeiwen.com/subject/rqljsttx.html