2009年4月28日星期二

Lua学习(1),编译Lua 与 HelloWorld

前段日子研究了一下python,被她的简洁高效深深吸引。今天在看云风的《游戏之旅-我的编程感悟》时,见他提到Lua,晚上把它弄下来玩玩。废话少说,进入正题...

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

2.编译Lua 源码
  • 先将lua-5.1.4.tar.gz 解压到一个目录,比如:F:\Program\Dev\lua\lua5_1_4
  • 打开 VS2005的命令提示窗(不是cmd,因为cmd不包含编译器和连接器的路径),cd 到F:\Program\Dev\lua\lua5_1_4目录下;
  • 运行“etc\luavs.bat”, ok,此时在src目录下生成了lua.exe、luac.exe等其他几个文件;
  • 讲src目录添加到系统环境变量中。
3. Helloword

用编辑器编写如下代码:

print "hello world"

保存成 hello.lua文件;再当前目录下,执行 lua hello.lua
可看到执行效果。关于编辑器环境的设置参考:Lua学习(2) 手工配置Lua的开发工具

4.如果用 luac执行编译,例如 luac -o hello.exe hello.lua,可以看到生成的 hello.exe文件,如果执行hello.exe,会得到“s32evnt1.dll 可安装的虚拟设备驱动程序之dll起始设置失败”错误;如图

找不到 C:\Program Files\Symantec\S32EVNT1.DLL,解决方法是 从http://www.dll-files.com/dllindex/s32evnt1.zip?0VGmVCcDdP下载此文件复制到相应路径即可。

即使解决了S32EVNT1.DLL的问题,hello.exe还是不能运行,luac命令是用来编译lua代码模块的,但是Lua代码是不可独自运行的,强行执行,会提示“***Cpu遇到无效指令”。
而我们在第三部中使用 lua命令可以成功执行,因为Lua.exe是一个Lua的解释器。
除此之外我们还可以用其他宿主语言调用lua代码(例如C/C++),后门的学习会给出。

欢迎转载,请注明来自 Hi,Coder




没有评论:

发表评论