纠正:quick2.2.6的lua5.1.5字节码可以只用一套字节码,虽然不知道是怎么回事,感觉是强制在64位的机器上用32位的字节码。
而这个32 64都可以用的分支我在lua官网查看,并没有找到。不知道这个是否是cocos官方修改的。
1.先做一个比对 lua luajit 32 64 bytecode 执行结果
测试代码
AppEntry.lua
print("Hello Lua Compile")
Version.lua
print("luaversion", _VERSION)
local jit = require("jit")
print("jitversion", jit.version_num)
c++测试代码:
2.测试版本 luajit2.1beta
iphone5 测试结果:
{
cocos2d.x.version: cocos2d-x-3.10
cocos2d.x.compiled_with_gl_state_cache: true
cocos2d.x.build_type: DEBUG
gl.supports_vertex_array_object: true
cocos2d.x.compiled_with_profiler: false
gl.renderer: PowerVR SGX 543
gl.vendor: Imagination Technologies
gl.version: OpenGL ES 2.0 IMGSGX543-113.3
gl.supports_S3TC: false
gl.supports_ATITC: false
gl.supports_ETC1: false
gl.supports_OES_packed_depth_stencil: true
gl.max_texture_units: 8
gl.supports_NPOT: true
gl.supports_OES_depth24: true
gl.supports_discard_framebuffer: true
gl.supports_BGRA8888: false
gl.supports_PVRTC: true
gl.max_texture_size: 4096
gl.max_samples_allowed: 4
}
Quick-Cocos2d-x C++ support ready.
lua32
[LUA ERROR] load "/private/var/mobile/Containers/Bundle/Application/C1919290-9570-40B9-BE0F-70E969724493/ARPG iOS.app/src/entry/AppEntry.lua32", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
lua64
[LUA ERROR] load "/private/var/mobile/Containers/Bundle/Application/C1919290-9570-40B9-BE0F-70E969724493/ARPG iOS.app/src/entry/AppEntry.lua64", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
luajit32
[LUA-print] Hello Lua Compile
luajit64
[LUA ERROR] load "/private/var/mobile/Containers/Bundle/Application/C1919290-9570-40B9-BE0F-70E969724493/ARPG iOS.app/src/entry/AppEntry.luajit64", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
lua
[LUA-print] Hello Lua Compile
[LUA-print] luaversion Lua 5.1
[LUA-print] jitversion 20100
结果:lua32 lua64 luajit64 报错 lua luajit32 正确执行
iphoen5s 测试结果:
{
gl.supports_vertex_array_object: true
cocos2d.x.version: cocos2d-x-3.10
gl.vendor: Apple Inc.
gl.supports_PVRTC: true
gl.renderer: Apple A7 GPU
cocos2d.x.compiled_with_profiler: false
gl.supports_S3TC: false
gl.version: OpenGL ES 2.0 Apple A7 GPU - 75.11.5
cocos2d.x.build_type: DEBUG
gl.max_texture_size: 4096
gl.supports_ETC1: false
gl.supports_BGRA8888: false
gl.max_texture_units: 8
gl.max_samples_allowed: 4
gl.supports_OES_packed_depth_stencil: true
gl.supports_ATITC: false
gl.supports_NPOT: true
gl.supports_discard_framebuffer: true
cocos2d.x.compiled_with_gl_state_cache: true
gl.supports_OES_depth24: true
}
Quick-Cocos2d-x C++ support ready.
lua32
[LUA ERROR] load "/var/mobile/Containers/Bundle/Application/87C819A8-EFD1-46AD-A4B2-3AF684817CD2/ARPG iOS.app/src/entry/AppEntry.lua32", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
lua64
[LUA ERROR] load "/var/mobile/Containers/Bundle/Application/87C819A8-EFD1-46AD-A4B2-3AF684817CD2/ARPG iOS.app/src/entry/AppEntry.lua64", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
luajit32
[LUA ERROR] load "/var/mobile/Containers/Bundle/Application/87C819A8-EFD1-46AD-A4B2-3AF684817CD2/ARPG iOS.app/src/entry/AppEntry.luajit32", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
luajit64
[LUA-print] Hello Lua Compile
lua
[LUA-print] Hello Lua Compile
[LUA-print] luaversion Lua 5.1
[LUA-print] jitversion 20100
3.测试版本 lua5.1
iphone5测试结果:
{
cocos2d.x.version: cocos2d-x-3.10
cocos2d.x.compiled_with_gl_state_cache: true
cocos2d.x.build_type: DEBUG
gl.supports_vertex_array_object: true
cocos2d.x.compiled_with_profiler: false
gl.renderer: PowerVR SGX 543
gl.vendor: Imagination Technologies
gl.version: OpenGL ES 2.0 IMGSGX543-113.3
gl.supports_S3TC: false
gl.supports_ATITC: false
gl.supports_ETC1: false
gl.supports_OES_packed_depth_stencil: true
gl.max_texture_units: 8
gl.supports_NPOT: true
gl.supports_OES_depth24: true
gl.supports_discard_framebuffer: true
gl.supports_BGRA8888: false
gl.supports_PVRTC: true
gl.max_texture_size: 4096
gl.max_samples_allowed: 4
}
Quick-Cocos2d-x C++ support ready.
lua32
[LUA-print] Hello Lua Compile
lua64
[LUA ERROR] load "/private/var/mobile/Containers/Bundle/Application/6D0A8DB5-4F6B-4174-A217-2CADA5DBC566/ARPG iOS.app/src/entry/AppEntry.lua64", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
luajit32
[LUA ERROR] load "/private/var/mobile/Containers/Bundle/Application/6D0A8DB5-4F6B-4174-A217-2CADA5DBC566/ARPG iOS.app/src/entry/AppEntry.luajit32", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
luajit64
[LUA ERROR] load "/private/var/mobile/Containers/Bundle/Application/6D0A8DB5-4F6B-4174-A217-2CADA5DBC566/ARPG iOS.app/src/entry/AppEntry.luajit64", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
lua
[LUA-print] Hello Lua Compile
[LUA-print] luaversion Lua 5.1
can not get file data of /usr/local/lib/lua/5.1/?/init.luajit.lua
[LUA ERROR] [string "/private/var/mobile/Containers/Bundle/Appli..."]:2: module 'jit' not found:
no field package.preload['jit']
no file './jit.lua'
no file '/usr/local/share/lua/5.1/jit.lua'
no file '/usr/local/share/lua/5.1/jit/init.lua'
no file '/usr/local/lib/lua/5.1/jit.lua'
no file '/usr/local/lib/lua/5.1/jit/init.lua'
no file './jit.so'
no file '/usr/local/lib/lua/5.1/jit.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
结果: lua64 luajit32 luajit64 报错 lua lua32 正确执行
iphone5s测试结果:
{
gl.supports_vertex_array_object: true
cocos2d.x.version: cocos2d-x-3.10
gl.vendor: Apple Inc.
gl.supports_PVRTC: true
gl.renderer: Apple A7 GPU
cocos2d.x.compiled_with_profiler: false
gl.supports_S3TC: false
gl.version: OpenGL ES 2.0 Apple A7 GPU - 75.11.5
cocos2d.x.build_type: DEBUG
gl.max_texture_size: 4096
gl.supports_ETC1: false
gl.supports_BGRA8888: false
gl.max_texture_units: 8
gl.max_samples_allowed: 4
gl.supports_OES_packed_depth_stencil: true
gl.supports_ATITC: false
gl.supports_NPOT: true
gl.supports_discard_framebuffer: true
cocos2d.x.compiled_with_gl_state_cache: true
gl.supports_OES_depth24: true
}
Quick-Cocos2d-x C++ support ready.
lua32
[LUA ERROR] load "/var/mobile/Containers/Bundle/Application/D3F2BE56-5611-498C-B70E-EFF67E125CA0/ARPG iOS.app/src/entry/AppEntry.lua32", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
lua64
[LUA-print] Hello Lua Compile
luajit32
[LUA ERROR] load "/var/mobile/Containers/Bundle/Application/D3F2BE56-5611-498C-B70E-EFF67E125CA0/ARPG iOS.app/src/entry/AppEntry.luajit32", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
luajit64
[LUA ERROR] load "/var/mobile/Containers/Bundle/Application/D3F2BE56-5611-498C-B70E-EFF67E125CA0/ARPG iOS.app/src/entry/AppEntry.luajit64", error: syntax error during pre-compilation.
[LUA ERROR] (null)
[LUA ERROR]
stack traceback:
lua
[LUA-print] Hello Lua Compile
[LUA-print] luaversion Lua 5.1
can not get file data of /usr/local/lib/lua/5.1/?/init.luajit.lua
[LUA ERROR] [string "/var/mobile/Containers/Bundle/Application/D..."]:2: module 'jit' not found:
no field package.preload['jit']
no file './jit.lua'
no file '/usr/local/share/lua/5.1/jit.lua'
no file '/usr/local/share/lua/5.1/jit/init.lua'
no file '/usr/local/lib/lua/5.1/jit.lua'
no file '/usr/local/lib/lua/5.1/jit/init.lua'
no file './jit.so'
no file '/usr/local/lib/lua/5.1/jit.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
先前luajit arm64编译都是在手机上编译然后上传到服务器上的,最近发现不在手机上也能编译,就是要开启LUAJIT_ENABLE_GC64
我在lj_arch.h 加入这个
#define LUAJIT_ENABLE_GC64
1.各版本bytecode是不能互用的,如果又想支持armv7 arm64 的话 就是必须用两套bytecode。
2.如果只想用一套代码。就不要编译bytecode。
上面测试资源:
http://download.csdn.net/detail/lovehappy108/9427785