第2课 - 搭建Lua开发环境

第2课 - 搭建Lua开发环境

1. Lua 的优点

  (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台

  (2)Lua 是开源且免费的软件,以源码的方式直接发布。开源软件的发布方式有多种形式。

2. 获取 Lua 源码

  可以访问 Lua 的官方网站 http://www.lua.org/ 下载 Lua 源码,如下图所示。

  

3. Lua 的源码结构

    • doc —  文档目录,对当前版本进行说明(编译,安装,...)    
    • src  —  源码目录包含所有 Lua 源文件
    • Makefile
    • README

    

4. Lua 源码编译后的4个关键目标

    • Lua     —  解释器,用于解释执行脚本或字节码文件
    • Luac   —  编译器,用于将脚本文件编译成字节码文件
    • liblua  —  静态链接库,可链接至宿主程序
    • lua5x    动态链接库,可链接至宿主程序

  注意:如果项目开放源代码可以使用脚本文件,如果是商业使用可以将脚本文件编译成二进制字节码文件。

5. 在 windows 和 linux 搭建开发环境

  — windows

  (1)windows 在默认情况下没有安装 make 和 GNU 编译器等,所以首先安装 mingw (Minimalist GNU on Windows)。

     参考资料:http://www.cnblogs.com/qcssmd/p/5302052.html

  (2)打开 windows 的 cmd 命令行,进入 lua-5.3.4\src\ 目录下执行 make mingw 命令即可生成4个关键二进制目标

    

  — linux

  进入 lua-5.3.4/src 目录下执行 make  generic 命令即可生成4个关键二进制目标

6. Lua的编译和执行

   lua 直接执行脚本文件

    • lua file_name      

   luac 将脚本文件编译成字节码文件

    • luac -o out_file file_name

 

注:本文整理于《狄泰12月提升计划》课程内容

转载于:https://www.cnblogs.com/shiwenjie/p/6693998.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于文件系统权限的管理

关于文件系统权限的管理 众所周知的是,一个操作系统,是需要为不同的用户进行服务的,因为不能让每个人都以管理员进行操作,这样做的话,毫无安全性可言,所以我们需要验证和授权。这就体现了权限的重要性&…

深度学习工作开展_深入开展深度工作:新经济中的两项核心能力

深度学习工作开展by Bar Franek由Bar Franek 深入开展深度工作:新经济中的两项核心能力 (Going Deeper on Deep Work: Two Core Abilities for Thriving in the New Economy) 爱深层工作的更多理由 (A Few More Reasons To Love Deep Work) I had no idea my first…

java获取文件名方法,利用Java获取文件名、类名、方法名和行号的方法小结

大家都知道,在C语言中,我们可以通过宏FILE、 __LINE__来获取文件名和行号,而在Java语言中,则可以通过StackTraceElement类来获取文件名、类名、方法名、行号,具体代码如下:public static int getLineNumber…

tp5.1升级指导---控制器调整 _initialize方法更改为initialize

控制器调整 为了规范化,继承了think\Controller类的话,初始化方法从原来的_initialize方法更改为initialize。转载于:https://www.cnblogs.com/lsyy/p/11027416.html

leetcode537. 复数乘法

给定两个表示复数的字符串。 返回表示它们乘积的字符串。注意,根据定义 i2 -1 。 示例 1: 输入: “11i”, “11i” 输出: “02i” 解释: (1 i) * (1 i) 1 i2 2 * i 2i ,你需要将它转换为 02i 的形式。 代码 class Solution {public String c…

初始多态

package Li;public class Person { String name;public Person() {super(); }public Person(String name) {super();this.name name; }public void eat(){System.out.println(name"正在吃面包"); } }package Li;public class Student extends Person {public Studen…

Bitmap尺度变换

1 Bitmap bitMap BitmapFactory.decodeFile(path);2 int width bitMap.getWidth();3 int height bitMap.getHeight();4 // 设置想要的大小5 int newWidth 500;6 int newHeight 400;7 // 计算缩放比例8 float scaleWidth ((float) newWidth) / width;9 float scaleHeight …

css!important_如何解决CSS特殊性问题以及何时使用!important关键字

css!importantby Muna Mohamed通过穆纳穆罕默德(Muna Mohamed) 如何解决CSS特殊性问题以及何时使用!important关键字 (How to tackle CSS specificity issues and when to use the !important keyword) 案例研究 (A Case Study) Recently, there was a Twitter pol…

php框架使用教程,php框架laravel excel包使用教程介绍

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP了,下面我们来看看laravel excel包使用教程laravel中excel插件的安装在composer中引入laravel excel的包&quo…

(私人收藏)python学习(游戏、爬虫、排序、练习题、错误总结)

python学习(游戏、爬虫、排序、练习题、错误总结) https://pan.baidu.com/s/1dPzSoZdULHElKvb57kuKSgl7bz python100经典练习题python-错误和异常小结python-大作业之五子棋游戏(附代码)python-网络爬虫几种排序方法python实现新手常见的python运行时错误…

leetcode1300. 转变数组后最接近目标值的数组和

给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。 如果有多种使得和最接近 target 的…

MySQL性能指标及计算方法

MySQL性能指标及计算方法 绝大多数MySQL性能指标可以通过以下两种方式获取: (1)mysqladmin 使用mysqladmin extended-status命令获得的MySQL的性能指标,默认为累计值。如果想了解当前状态,需要进行差值计算&#xff1b…

php可变变量讲解,PHP可变变量实例详解

什么是可变变量?在PHP中有一个其他类型的变量,“可变变量”。可变变量是一种PHP独特的变量,他允许动态改变一个变量的名称。可变变量的工作原理这个特性的工作原理是用一个变量的值作为另一个变量的名称。例如,我们可以设置$str的…

Nginx平滑升级到最新版本

(一)简述: 早上收到nginx最新漏洞的通知,Nginx官方发布最新的安全公告,在Nginx范围过滤器中发现了一个安全问题(CVE-2017-7529),通过精心构造的恶意请求可能会导致整数溢出并且不…

如何使用TypeScript从Microsoft Word生成GitHub markdown文件

by Manish Bansal通过Manish Bansal What? Why would one want to generate an MD file from a Microsoft word document? If that’s the first thought you had after reading this title, then let me give you a strong use case.什么? 为什么要从Microsoft …

Android Studio 导入 Android 系统模块并编译和调试

FAQ: AS导入系统模块源码,并且能够编译调试,正常查看java doc ???? Android AOSP基础(五)Android Studio调试系统源码的三种方式http://liuwangshu.cn/framework/aosp/5-debug-aosp.html Android AOSP基础(四&…

2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了

主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息技术有限公司将共同在多个城市举办以"传…

Python自动化运维:Django之View视图和Template

views详解 http请求中产生两个核心对象: http请求:HttpRequest对象 http响应:HttpResponse对象 (1) HttpRequest对象 当请求一个页面时,Django 创建一个 HttpRequest对象包含原数据的请求。然后 Django 加载…

leetcode491. 递增子序列(回溯算法)

给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 代码 class Solution {List<List<Integer>>…

java重入锁,再探JAVA重入锁

之前的文章中简单的为大家介绍了重入锁JAVA并发之多线程基础(2)。这里面也是简单的为大家介绍了重入锁的几种性质&#xff0c;这里我们就去探索下里面是如何实现的。我们知道在使用的时候&#xff0c;必须锁先有定义&#xff0c;然后我们再拿着当前的锁进行加锁操作&#xff0c…