美文网首页
查看静态库.a文件编译报错

查看静态库.a文件编译报错

作者: 策马鞭程 | 来源:发表于2016-11-18 10:25 被阅读326次
    重点:symbol(s) not found for architecture arm64

    该静态库不支持arm64.

    ##armv6
    iPhone、iPhone 3G
    iPod 1G、iPod 2G
    
    ##armv7
    iPhone 3GS、iPhone 4
    iPod 3G、iPod 4G、iPod 5G
    iPad、iPad 2、iPad 3、iPad Mini
    
    ##armv7s
    iPhone 5、iPhone 5C
    iPad 4
    
    ##arm64
    iPhone 5S   iPhone 6   iPhone 6Plus
    iPad Air, Retina iPad Mini
    

    Architectures

    该编译选项指定了工程将被编译成支持哪些指令集,支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。

    指令集是向下兼容的。比如,armv7s指令集的设备,可以兼容运行使用armv7、armv6编译的程序。

    错误分析:
    打包以后的库文件,我们查看信息
    然后打入如下命令:lipo -info .a文件完整路径

    没有报错的.a 出现问题的.a

    这个静态库只支持x86_64(x86的库是在模拟器上跑的) . 我的工程中Valid Architectures和Architectures中均包含了arm64的指令集,这就是说明我需要编译的app最终要支持arm64的,而程序中用到的静态库并没有arm64,导致了出错.

    解决:提供支持arm64的静态库文件,就可以正常编译通过了.

    相关文章

      网友评论

          本文标题:查看静态库.a文件编译报错

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