关闭

Lua 教程-01

标签: lua源码编译
39人阅读 评论(0) 收藏 举报
分类:

Lua 教程-01

下载源码

去官网下载lua源码,比如版本5.3.3

编译

根据readme中提示:

  • library:
    • lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c
  • interpreter:
    • library, lua.c
  • compiler:
    • library, luac.c

其实可以写一个cmake文件试试,不过网上有现成的bat,那就直接拿来用吧

cd src
cl /O2 /W3 /c /DLUA_BUILD_AS_DLL l*.c
del lua.obj luac.obj
link /DLL /out:lua53.dll l*.obj
cl /O2 /W3 /c /DLUA_BUILD_AS_DLL lua.c luac.c
link /out:lua.exe lua.obj lua53.lib
del lua.obj
link /out:luac.exe l*.obj
cd ..

打开vs的命令工具,执行,就可以了。最后得到三个文件

其它方法

组成分析

可以知道lua由3部分组成:

  • Lua链接库
  • Lua解释器
  • Lua编译器

用vs分开编译

编译Lua链接库

  • 新建vs项目
  • 将src目录下文件全部拷贝到项目中,删除lua.c,luac.c和lua.hpp
  • 可以设置编译64位,Configuration Type Static library(.lib), Precompiled Header: Not using Precompiled Header, Multi-threaded(/MT).
  • 得到Lua53.lib文件

编译Lua解释器

  • 新建vs项目
  • 将src目录下文件全部拷贝到项目中,删除luac.c
  • 设置当前项目以来与Lua53项目
  • 编译后会得到Lua.exe 文件,这就是Lua解释器lua.exe

编译Lua编译器

  • 新建vs项目
  • 将src目录下文件全部拷贝到项目中,删除lua.c
  • 设置当前项目以来与Lua53项目
  • 编译后会得到Luac.exe 文件,这就是Lua编译器Luac.exe

验证

  • 点击Lua.exe
  • 输入:
io.write("Hello I get a powerful program language called Lua \n")
io.write(string.format("This Lua is %s and now is %s \n",_VERSION,os.date()))
  • 会输出相应信息
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:807次
    • 积分:83
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档