iOS下接入Lua

1、Armv7平台

iPhone5的CPU直接使用的浮点计算方法有误差,会导致 double 的高精度比较与计算出错,解决方案是使用LuaJIT,在编译时加入 -mfloat-abi=soft -mfpu=neon 选项以开启软浮点模式,而这个选项需求链接 libgcc.a 这个库,而这个库只有XCode4.2版本以下有了,所以解决方案是单独装一个这个版本然后去里面找出来。

之所以不用源生Lua的原因是,没搞懂为啥Lua就算开启这个编译也不生效。

2、Arm64平台

使用LuaJIT2.1直接编译arm64平台的时候遇到了一个问题,就是iPhone6在XCode里Debug模式可以启动游戏而Release模式(打包出来)时会闪退。试了几次后发现原来是因为优化级别不同导致的,Debug模式下默认是 -O0 而Release默认是 -Os。将Release模式改成 -O0 之后也可以正常启动,但是效率方面损失太多。所以此处只好选择使用源生Lua。

综上,最后iOS接入Lua的库使用的是 luajit-2.1.0beta2(armv7) + lua5.1(arm64) 的混合模式,即各编各的然后把所有库全链接到一起,实测下来真机一切正常。

你可能感兴趣的:(iOS下接入Lua)