美文网首页程序员
普通静态库生成步骤(一):

普通静态库生成步骤(一):

作者: js_huh | 来源:发表于2016-07-13 17:40 被阅读156次

    1,制作.a文件的静态库(没有图片资源)

    创建.a文件的静态库项目
    实现自己需要封装的方法
    生成已经编译好的.a静态库(注意,项目名最好用英文,上面是为了方便识别,才使用中文,)

    查询.a静态文件的位置

    2,使用.a静态库

    3, 出错: 调试!

    错误:Undefined symbols for architecture i386:(x86_64 / i386 /arm64 / armv7s / armv7 )

    原因:静态库的架构不对!

    生成.a静态库时,是在iPone6的模拟器 而在项目中,是在iPone5的模拟器中运行!

    iPone一共有5种架构:

    模拟器架构(2种):
    i386:     4S /5         (32位)
    x86_64:5S --->6S (64位)

    真机架构(3种):
    armv7:4/4S
    armv7s:5/5C最特殊的一代默认已经不支持输出
    arm64:5S -->6S

    怎么查看架构?
    在终端输入命令:lipo -info 静态库路径

    怎么合成5种架构?
    1) 使用合成命令合成! 语法:
        合成命令:lipo -create静态库1.a静态库2.a -output新静态库.a
        1,将已经在模拟器iPone 6下,编译好的静态库,剪切存放在新的文件夹里面
        2,在iPone 5的模拟器下,直接运行!(.a的静态库文件,会由红色变为黑色)
        3,在终端,输入命令 lipo -create静态库1.a静态库2.a -output新静态库.a,(合成了新的静态库)

    创建在iPone 5模拟器下的.a静态文件 通过命令,将适用于iPone5 和适用于iPone 6的静态库,合成成一个新的静态库

    2) 一次性编译适用,真机或者模拟器的所有版本!(注意需要编译两个版本(真机+模拟器))

    如要适用,所有真机+模拟器的所有版本,则需要分别编译,然后再用命令合成新的.a静态库

    3)对于iPone 5 和 iPone5C 的真机架构(armv7s),该如何适用 ?

    2014年10月后,iPone就不在支持armv7s的架构,那么真机该如何,该如何适用所有版本的架构呢?
    Build Active Architecture Only -->No
    选中静态库->选中TARGETS -> Build Settings -> Architectures ->添加arm64 armv7 armv7s ->选中真机运行


    相关文章

      网友评论

        本文标题:普通静态库生成步骤(一):

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