用VC编译lua源码,生成lua语言的解释器和编译器
用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语言的解释器和编译器的更多相关文章
- ant编译solr源码生成eclipse项目,解决一直resolve,一直[ivy:retrieve]的问题
这两天在学习solr,结果刚到编译solr源码就卡住了,足足卡了两天,网上找各种解决办法都是简单带过,说是缺少jar包,下载下来放到对应位置就好了....对应位置???咋不说这个问题用相应方法解决即可 ...
- Windows 上编译 corefx 源码生成 Linux 上可用的 System.Data.SqlClient.dll
最近在排查一个奇怪的 EF Core 查询速度慢的问题,需要在 corefx 2.2.3 的 System.Data.SqlClient 源码中打点. github 上签出 corefx 的源代码,运 ...
- Lua源码编译之CL编译器编译
通过使用VC下的CL编译器,可方便地编译Lua源码,而无需构造工程并设置各种选项: 以下以源码Lua5.3.1版本为例,将通过CL编译选项直接编译源码,为方便编译将采用批处理脚本,脚本放置在Lua解压 ...
- windows下编译lua源码
所有的lua源码都放在了 src 文件夹下,当然,不同的lua版本目录结构有可能不一样,但是都会有 src 这个文件夹,只有这个才是我们编译必须的.而且lua越做越精简了,5.1的版本里面还有一些te ...
- <转>windows下编译lua源码
因为之前一直使用 lua for windows 来搭建lua的使用环境,但是最新的 lua for windows 还没有lua5.2,我又想用这个版本的lua,所以被逼无奈只能自己编一下lua源码 ...
- 用vs2013编译lua源码方法(一)
用vs2013编译lua源码方法 来源:网络 编辑:admin 1.下载lua源码:lua-5.2.3.tar.gz,解压 2.用vs2013建立一个win32工程: 1)下载后解压到一个目录下 ...
- 用vs2013编译lua源码方法
1.下载lua源码:lua-5.2.3.tar.gz,解压 2.用vs2013建立一个win32工程: 1)下载后解压到一个目录下,这里假设解压到 F:\lua-5.2.3 注意下载的版本,如果是 ...
- 某Android手游的lua源码逆向分析与还原
近日分析某一款Android上面的手游,反编译后再起asset目录下可以看到加密过的脚本,lib目录下发现lua的so 初步怀疑其使用lua脚本实现的 解密函数定位 动态跟踪解密函数流程 静态分析解密 ...
- lua源码学习篇三:赋值表达式解析的流程
上节说到表达式的解析问题,exprstate函数用于解析普通的赋值表达式.lua语言支持多变量赋值.本文先从单变量赋值表达式讲起. a = b = c = a + b 对于简单的两个数的求和过程,lu ...
随机推荐
- liunx 防火墙开放端口的设置
今天在liunx 服务器上遇到一个问题,tomcat服务启动后怎么也访问不到项目,找了好久的原因,终于发现原来是liunx服务防火墙限制服务端口的访问,也就不多说了,看下面解决方法. 1.查看防火墙的 ...
- Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...
- mysql无法登录
很久没用root账户登录mysql发现无法登录 以为root密码被修改 修改root密码后还是无法登录 判断ip没权限 运行 Grant all privileges on *.* to 'root' ...
- shell下批量重命名svn文件的方法
shell下批量重命名svn文件的方法 目标: 将svn目录下所有文件重命名 , 原文件前缀为 ucc_ , 批量改为 xmd_ 用tree看下当前svn目录 ucc_1.c ucc_1.h ucc_ ...
- PHP-Mysqli扩展库的预编译
(1)预编译的好处 假如要执行100条类似的sql语句,每一次执行,在MySQL端都会进行一次编译,效率很低.提高效率的方法就是--减少编译的次数. 先制造一个sql语句的模板,在MySQL端预先编译 ...
- Catia CAA 二次开发 ---- 开发准备(0)
去年开始学习Catia CAA的二次开发,前后的间断性学习有1年吧. 现在已经好久没用,忘得也差不多了,原来的笔记都放在了Evernote,现在还是觉得边继续复习边总结一下,以后也比较好检索. 先吐槽 ...
- new的原罪
一直以为在开发阶段能够直接调用的,速度而言一定是最优秀的,因为总比后期通过反射之类来调用来得快吧. 下面请看一个SB的例子,重新编译以后,这个类在创建100,000,000实体时居然耗费了16秒的时间 ...
- [转]Liunx上安装svn客户端
[转]Liunx上安装svn客户端 虽然说很简单的用yum install subversion就可以将svn安装到系统中,但是yum库中的版本实在是有点低——1.4.2.因此我选择以源码方式安装.安 ...
- 界面显示两个ListView
1.List界面布局 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:an ...
- STL练习题
//hdu_2717 //map 一对多映射,基于关键字快速查找,不允许重复值 //queue 队列 先进先出 #include<iostream> #include<cstdio& ...