Lua学习笔记(一):搭建开发环境
2015-08-04 20:19
639 查看
Lua是一个小巧高效的解释型脚本语言,可以方便的嵌入到任意的语言中,很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟、VOCALOID3、太阳神三国杀等。
解压后获得的源码是不能直接使用的,还需要我们手动进行编译才能使用。
新建一个VC++的控制台应用程序,项目名称叫做lua;
去掉预编译头的勾选;
复制解压后的src文件夹中所有文件复制到项目文件夹中,需要注意的是luac.c不要拷贝进去,而lua.c要保留;
点击“资源管理器”的“显示所有文件”按钮,就可以看到复制过来的所有源文件;
全选所有源文件,右击选择“包括在项目中”,即可将所有的源文件都包含到项目中;
运行项目即可获得Lua.exe文件;
步骤和上面一致,只是保留的是luac.c而要去掉lua.c。
LDT自身已经集成了Lua的编译器和解释器,我们直接解压后就可以不做任何修改直接使用了,非常方便。
配置以Windows为例:
首先找到我们最开始生成的lua.exe的路径;
点击“Tools”->“Build System”->“New Build System”;
填写下面的脚本:
保存为lua即可;
接下来我们的lua脚本就可以直接点击“Tools”->“Build”来运行了。
下载和编译
下载连接:http://www.lua.org/download.html,点击Download按钮下载lua的源代码。解压后获得的源码是不能直接使用的,还需要我们手动进行编译才能使用。
Window下编译
主要我们需要安装VS才能进行编译。编译Lua.exe
该程序为lua解释器。新建一个VC++的控制台应用程序,项目名称叫做lua;
去掉预编译头的勾选;
复制解压后的src文件夹中所有文件复制到项目文件夹中,需要注意的是luac.c不要拷贝进去,而lua.c要保留;
点击“资源管理器”的“显示所有文件”按钮,就可以看到复制过来的所有源文件;
全选所有源文件,右击选择“包括在项目中”,即可将所有的源文件都包含到项目中;
运行项目即可获得Lua.exe文件;
编译luac.exe
该程序为Lua编译器。步骤和上面一致,只是保留的是luac.c而要去掉lua.c。
编译Lua静态或动态库
步骤和上面一致,只是lua.c和luac.c都要去掉,同时项目创建时选择对应的类型,是DLL还是静态库。MacOS下编译
相对于Windows下非常方便,不需要额外安装任何东西,直接通过终端进入解压目录后键入“make macos”的命令即可。开发工具
工欲善其事必先利其器,我们需要一款顺手的IDE来编辑Lua代码,下面推荐两个我比较喜欢的IDE给大家。LDT
下载地址:http://www.eclipse.org/koneki/ldt/LDT自身已经集成了Lua的编译器和解释器,我们直接解压后就可以不做任何修改直接使用了,非常方便。
Sublime
Sublime是我个人很喜欢的一款编辑器,其本身支持对lua脚本的语法着色,我们经过简单的配置就可以使其支持运行lua代码,但需要留意的是,这个功能仅仅是运行lua脚本,执行结果只相当于lua [filename.lua],无法进行文本的输入控制,同时无法设置断点进行调试,需要这些功能的话请使用上面的LDT。配置以Windows为例:
首先找到我们最开始生成的lua.exe的路径;
点击“Tools”->“Build System”->“New Build System”;
填写下面的脚本:
{ "cmd": ["E:\\study\\C++\\lua\\Debug\\lua.exe", "$file"], "file_regex":"^(?:lua:)?[\t](...*?):([0-9]*):?([0-9]*)", "selector":"source.lua" }
保存为lua即可;
接下来我们的lua脚本就可以直接点击“Tools”->“Build”来运行了。
相关文章推荐
- Lua打印table升级版
- Lua教程:C++和Lua相互传递数据(2)
- Lua教程: C++嵌入Lua脚本(1)
- Evaluate函数运行时错误438
- 安装 LuaSocket
- Lua调用C++带参数的方法
- Lua调用C++带参数的方法
- Lua快速排序算法+代码
- C++对Lua中table进行读取、修改和创建
- C++对Lua中table进行读取、修改和创建
- C++获取Lua全局变量和执行Lua多参数多返回值函数
- C++获取Lua全局变量和执行Lua多参数多返回值函数
- os.date()参数
- VS2012编译Lua5.3.1
- VS2012编译Lua5.3.1
- 浅析Lua中table的遍历
- lua 栈,checkElement支持删除元素操作
- lua 高效hashmap (没调试)
- 跟我一起了解Lua语言中的_index,newindex,rawget和rawset
- lua日常记录