码迷,mamicode.com
首页 > 其他好文 > 详细

用VC编译lua源码,生成lua语言的解释器和编译器

时间:2014-08-31 18:30:51      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:blog   http   os   使用   io   ar   文件   cti   代码   

用VC编译lua源码,生成lua语言的解释器和编译器

1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编译源码,我们需要编译:

  • 一个静态库
  • 一个动态库
  • 一个lua语言解释器
  • 一个lua编译器

建立一个工静态库工程

  • 打开VC-->文件-->(点击)新建--(弹出框中选择)工程-->(win32 static library)
  • 创一个空的工程
  • 工程名为luaLib
  • 把lua中所有的源码添加,去掉其中的lua.c 和luac.c这两个文件
  • 编译生成一个以luaLib.lib结尾的静态库(后面使用)

建立一个工动态库工程

  • 打开VC-->文件-->(点击)新建--(弹出框中选择)工程-->(win32 Dynamic-link library)
  • 创一个空的工程
  • 工程名为luadll
  • 把lua中所有的源码添加,去掉其中的lua.c 和luac.c这两个文件
  • 编译生成一个luadll.dll结尾的静态库(后面使用)

建立一个控制台工程(生成解释器)

  • 打开VC-->文件-->(点击)新建--(弹出框中选择)工程-->(win32 console Application)
  • 创一个空的工程
  • 工程名为luaInterpreter
  • 只添加lua.c
  • 点击 工程--->设置---链接-->分类---(点下拉框)---输入---分类/模块库中加入上面生成的静态库名luaLib.lib
  • 为了编译时能找到刚才添加的静态库(luaLib.lib),把它,放到你的工程目录,即和*.dsp的同一个文件夹下。这样编译器会到这里查找这个库
  • 编译这样就可以生成一个luaInterpreter.exe文件。这个可执行文件可以运行你写的lua脚本.
  • 不过,你要把上面生成的luadll.dll文件和luaInterpreter.exe文件,放在同一个目录。
  • 然后打开一个dos窗口,进入你的luaInterpreter.exe文件所在的目录
  • 在命令行输入: luaInterpreter.exe test.lua
  • 就可以执行test.lua这个脚本了

现在用文本编辑器写下面的代码,保存为test.lua

function fact(n)
if n == 0 then
    return 1
else
    return n * fact(n - 1)
end
end
print("Enter a number:")
a = io.read("*number")
print(fact(a))

建立一个控制台工程(生成编译器)

  • 打开VC-->文件-->(点击)新建--(弹出框中选择)工程-->(win32 console Application)
  • 创一个空的工程
  • 工程名为luacompile
  • 只添加luac.c
  • 点击 工程--->设置---链接-->分类---(点下拉框)---输入---分类/模块库中加入上面生成的静态库名luaLib.lib
  • 为了编译时能找到刚才添加的静态库(luaLib.lib),把它,放到你的工程目录,即和*.dsp的同一个文件夹下。这样编译器会到这里查找这个库
  • 编译这样就可以生成一个luacompile.exe文件。这个可编译文件可以编译你写的lua脚本. 

原文链接:http://www.cnblogs.com/activity-life/p/3583536.html

另外动态库和静态库的区别可参见: http://www.cnblogs.com/skynet/p/3372855.html

用VC编译lua源码,生成lua语言的解释器和编译器

标签:blog   http   os   使用   io   ar   文件   cti   代码   

原文地址:http://www.cnblogs.com/jadeboy/p/3947946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!