确定已编译Lua的编译器版本
我有一些已编译的LuaQ,我需要确定用于编译它的确切版本,有没有任何可能的方法可以做到这一点?已编译的脚本在文件的开头有一个头确定已编译Lua的编译器版本,lua,Lua,我有一些已编译的LuaQ,我需要确定用于编译它的确切版本,有没有任何可能的方法可以做到这一点?已编译的脚本在文件的开头有一个头 4 bytes - signature ("\x1bLua") 1 byte - version (0x51) 1 byte - format 1 byte - endianness 5 bytes - sizes of some types 因此,您可以从第5字节获取主要版本。0x50代表LUA5.0.x,0x51代表LUA5.1.x等。 次要版本(例如区分5.1
4 bytes - signature ("\x1bLua")
1 byte - version (0x51)
1 byte - format
1 byte - endianness
5 bytes - sizes of some types
因此,您可以从第5字节获取主要版本。0x50代表LUA5.0.x,0x51代表LUA5.1.x等。次要版本(例如区分5.1.3和5.1.4)不存在于编译文件中。太糟糕了,Linux和Mac OS X中的
file
命令不知道比5.1更新的Lua版本。LuaQ
表示Lua 5.1Q
是ASCII格式的0x51
。标题中的版本实际上是Lua虚拟机规范的版本。标准发行版有更精确的编译器版本(5.0.2、5、3.1等)。