本身编译lua5.2.1

官方发布库仍是5.1.4的,并且因为失误致使必须带着2个dll文件。最新的源代码是5.2.1的,咱们本身编译吧,目标是静态库,省得带着 dll 满世界跑。 函数

下载源代码:http://www.lua.org/ftp/lua-5.2.1.tar.gz lua

解压备用。这里说句题外话,lauxlib.h 和 lauxlib.c 我认为也应该是官方的失误,本意应该是 luaxlib.h 和 luaxlib.c 吧? spa

新建一个 static library 工程,把解压获得的目录下的src子目录中的全部.h和.c文件拷贝到新工程目录下。 指针

工程中删除自动生成的 main.c 文件,添加进除lua.c、luac.c和lua.hpp的全部.h和.c文件。 get

编译,获得 libLua.a 便是库。注意,若是你没有重设过输出目录,这个 liblua.a 文件应该在你的源代码目录里。 编译器

而后把 libLua.a 放到编译器的 Lib 目录下,把  lauxlib.h、lua.h、luaconf.h、lualib.h 放到编译器的 include 目录下(C++用户再添加个 lua.hpp),最好新建个 lua 子目录存放头文件更清晰。 编译


其实最关键就是除开没必要要的文件,实际上:
编译 lua(lua.exe,解析器) 时删除luac.c,加入lua.c。
编译 luac(luac.exe,字节码编译器)时删除lua.c,加入luac.c。
编译 lib和dll(liblua.a和lua.dll,库)时把lua.c和luac.c都删除。 ftp


另外要注意:lua 5.2.1 建立一个指向Lua解释器的指针的函数 lua_open 修改为 luaL_newstate。
即把工程从lua5.1库转到5.2库时,在调用 lua_open() 的地方都须要修改为 luaL_newstate()。 下载

相关文章
相关标签/搜索