Lua是一个小巧高效的解释型脚本语言,可以方便的嵌入到任意的语言中,很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门、愤怒的小鸟、VOCALOID3、太阳神三国杀等。

下载和编译

下载连接:http://www.lua.org/download.html,点击Download按钮下载lua的源代码。

解压后获得的源码是不能直接使用的,还需要我们手动进行编译才能使用。

Window下编译

主要我们需要安装VS才能进行编译。

编译Lua.exe

该程序为lua解释器。

  1. 新建一个VC++的控制台应用程序,项目名称叫做lua;
  2. 去掉预编译头的勾选;
  3. 复制解压后的src文件夹中所有文件复制到项目文件夹中,需要注意的是luac.c不要拷贝进去,而lua.c要保留;
  4. 点击“资源管理器”的“显示所有文件”按钮,就可以看到复制过来的所有源文件;
  5. 全选所有源文件,右击选择“包括在项目中”,即可将所有的源文件都包含到项目中;
  6. 运行项目即可获得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学习笔记(一):搭建开发环境的更多相关文章

  1. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  2. php 学习笔记之搭建开发环境(mac版)

    Mac 系统默认集成了很多开发工具,其中就包括 php 所需要的一些软件工具. 下面我们将搭建最简单的 php 开发环境,每一步都会验证上一步的操作结构,请一步一步跟我一起搭建吧! web 服务器之 ...

  3. 【转】Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

    @2019-02-28 [小记] Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印.

  4. 【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)

    之前一直用的EJB开发环境是他们搭建好的,直接拿来用,不过还是感觉老吃别人嚼好的不太好吃,所以自己动手来玩一玩. EJB开发依赖的最基本的环境:JDK.Eclipse.JBoss,这里简单介绍一下最基 ...

  5. 零基础Android学习笔记-01 安卓开发环境搭建

    安卓开发环境搭建. 1.首先准备JDK,从官网找到JDK下载地址,原来做.NET不熟悉JAVA,干脆用最新的,下载了JDK 1.7的版本.原来装过1.5还要配置环境变量什么的.但1.7好像很给力,装好 ...

  6. Cocos2d-x学习笔记之Cocos2d-x开发环境搭建

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Cocos2d-x源码包下载地址: http://cocos2d-x.org/projects/cocos2d-x/ ...

  7. go语言学习笔记1 Go开发环境

    什么是Go?Go是一门并发支持.垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡的一门编程语言. Go的主要特点有哪些?* 类型安全 和 内存安 ...

  8. Vue学习笔记(五)——配置开发环境及初建项目

    前言 在上一篇中,我们通过初步的认识,简单了解 Vue 生命周期的八个阶段,以及可以应用在之后的开发中,针对不同的阶段的钩子采取不同的操作,更好的实现我们的业务代码,处理更加复杂的业务逻辑. 而在这一 ...

  9. NLP自然语言处理学习笔记三(集成开发环境)

    前言: 我们在做自然语言学习的过程中使用Python进行编程.是用解析器的方式确实有些麻烦.在这里给大家推荐一款集成开发环境IDE可以很方便的对Python进行项目管理,代码自动提示,运行调试等. 简 ...

  10. C#学习笔记一:C#开发环境的设置

    C#是.NET Framework的一部分,用于编写.NET应用程序. C#集成开发环境(IDE) 微软提供了以下C#编程开发工具: Visual Studio 2010 (VS) Visual C# ...

随机推荐

  1. UVa 11916 (离散对数) Emoogle Grid

    因为题目要求同列相邻两格不同色,所以列与列之间不影响,可以逐列染色. 如果一个格子的上面相邻的格子,已经被染色则染这个格子的时候,共有k-1中选择. 反过来,如果一个格子位于第一列,或者上面相邻的格子 ...

  2. I.MX6 git patch

    /********************************************************************** * I.MX6 git patch * 说明: * 之前 ...

  3. 2014-LAMP兄弟连视频下载地址汇总

    linux 兄弟连2014年新版Linux视频教程百度网盘下载 http://pan.baidu.com/s/1kTsjVfx http://pan.baidu.com/s/1sjJf2OX 兄弟连2 ...

  4. shell -Z- d等等代表

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [ -a FILE ]   ...

  5. Mac终端编译运行C++

    1.在编辑器中写好C++代码 2.打开终端打开文件对应的地址 3.用g++命令来编译.cpp文件 4.用./文件名来运行 观察文件的目录可发现 g++ 源文件名 编译源文件,产生a.out ./文件名 ...

  6. delphi中计算指定日期是该月第几周的函数

      NthDayOfWeek 计算并返回指定日期是该月第几周 Unit:DateUtils function NthDayOfWeek(const AValue: TDateTime): Word; ...

  7. 自定义TreeList单元格 z

    DevExpress Treelist自定义单元格,加注释和行序号.以上一节的列表为例,实现以下效果:预算大于110万的单元格突出显示,加上行序号以及注释,如下图: 添加行序号要用到CustomDra ...

  8. C# winform 若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误

    winform中有时添加了新控件之后编译会报错: 若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误,如图: 解决方案: 1.“解决方案”→“批生成”→“清理”→“确定”: 2.“解决方案”→ ...

  9. Cake slicing

    题意: n*m的方格中有k个点,现在要把方格分开使得每个点在一个部分,每分一次花费边长的费用,求完成花的最小费用 分析: dp[sx][sy][ex][ey]表示分割起点(sx,sy)终点(ex,ey ...

  10. HDU 2222 (AC自动机模板题)

    题意: 给一个文本串和多个模式串,求文本串中一共出现多少次模式串 分析: ac自动机模板,关键是失配函数 #include <map> #include <set> #incl ...