Ios static library Build Active Architecture Only 属性的设置

由于项目需要,我们需要将我们的代码生成一个静态库,在制作的过程中发现Build Active Architecture only 属性的重要,由于这个属性的设置不正确,在项目中有两处都会报错
1:引入静态库的工程文件的Build Active Architecture Only属性设置要和你的静态库的属性设置一致,不然就会报architecture不对的错误。如下图
这里写图片描述

看见i386,我就用比较低端的iphone5模拟器建立了一个静态库,引入后却发现错误信息变成了Undefined symbols for architecture arm64。吐血。
后来经过测试,设置不一样也可以,下面的表格显示不同设置的时候,项目的Build状态。为了避免出现architecture 冲突的情况,我们还是讲静态库的属性设置为no 或者release也yes。
2:spidermonkey js 引擎 undefined symbols
按照流程,生成静态库后,当引入到工程文件夹中编译时发现js的两个函数编译不通过,报告说是找不到相关的类(undefined symbols):分别是JS::IsInRequest和JS::AssertArgumentsAreSane。查了一圈google,貌似是设定的debug 和release模式不对,因为在spidermonkey中设定了一个debug的宏,只有在debug模式下面才会编译相关的类。但我已经将debug 的宏打开了。在各种尝试下,我发现只要将静态库target中的Build Active Architecture Only设置为Yes以后,这个bug就解决了。
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值