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) 的混合模式,即各编各的然后把所有库全链接到一起,实测下来真机一切正常。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容