1. Windows下使用Mingw-w64 GCC编译安装Lua5.1.5

2023-05-16

除了一些游戏开发的脚本领域,在以OpenResty作为Web框架的后端开发中,Lua也会大量的使用,这就难免要对在Shell中测试、验证Lua语法,为此,小编写了一篇在Windows环境下编译Lua源码为可执行程序的教程(注:VS体积过于庞大,小编不太想安装VS以使用Visual C++编译器,而是使用有包管理工具的仿Linux环境的MSYS2。此外,同样的GCC编译器,方便跨平台(Windows、Linux)时,代码的编译及运行结果一致。其中,MSYS2及其MinGW64 GCC编译工具的安装及简单的使用,可参考小编的另一篇文章:1.0基于MSYS2的Mingw-w64 GCC搭建Windows下C++开发环境)。

  • 该教程目录及文章结构如下:

      • **1.下载Lua源码**
      • **2.编译安装Lua**
      • **3.测试编译安装结果**

1.下载Lua源码

  • 如下图所示,从Lua官网寻找合适的版本下载源码。当然,也可以点击该链接http://www.lua.org/ftp/lua-5.1.5.tar.gz直接进行下载。这里以5.1.5版本为例,之所以选择该版本,是因为据说OpenResty绑定的LuaJit对应的Lua版本就是5.1.5。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.编译安装Lua

  • 下载Lua源码,解压后,将得到如下图所示的文件目录:
    在这里插入图片描述
  • 打开MSYS2 MinGW 64-bit,使用cd命令进入到源码目录,然后使用如下命令进行编译,该过程的截图如下图所示。
make mingw install local

在这里插入图片描述
在这里插入图片描述

  • 这里,mingw参数用以指定使用的是Mingw绑定的GCC编译器进行编译,install local参数则是指明编译完成后,安装到本地(即当前目录)

  • 编译安装完成后,得到的目录如下所示。与未编译的源码目录对比,可以看到这里多出来了bin、include、lib、man、share五个目录。
    在这里插入图片描述

  • 将源码目录,即“…/lua-5.1.5/src/”下的动态库“lua51.dll”复制到“…/lua-5.1.5/bin/”目录。(这可能是个MakeFile文件有缺陷所致,按理说,编译安装完后,应该已经复制到bin目录。)
    在这里插入图片描述

  • 为了使用方便,这里将编译好的整个目录移动到“C:/lua-5.1.5”路径下,一般来说,只移动bin目录即可,但为了在Lua中能够调用由C/C++编译而成的动态库,也需要移动头文件目录(include)和静态库目录(lib),即将上一步中产生的5个目录均移动到“C:/lua-5.1.5”路径下

  • 下图所示,将“C:/lua-5.1.5/lua”bin目录添加到系统环境变量,以备lua命令可用
    在这里插入图片描述

3.测试编译安装结果

  • 如下图,打开Windows Terminal(也可以是cmd或者powershell),然后输入lua回车,即可进入lua的shell环境。输入luac,会有相应的使用提示,luac是用于将Lua源码编译为字节码的应用程序,需要指定输入输出文件。如上述过程正常,则说明整个Lua源码编译过程圆满完成。
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1. Windows下使用Mingw-w64 GCC编译安装Lua5.1.5 的相关文章

  • C++常用库函数

    C 43 43 常用库函数 1 常用数学函数 头文件 include lt math gt 或者 include lt math h gt 函数原型 功能 返回值 int abs int x 求整数x 的绝对值 绝对值 double aco
  • 基于GEC6818的触摸屏

    1 输入子系统 连接操作系统的输入设备 xff0c 可不止一种 xff0c 也许是一个标准PS 2键盘 xff0c 也许是一个USB鼠标 xff0c 或者是一块触摸屏 xff0c 甚至是一个游戏机摇杆 xff0c Linux在处理这些纷繁各
  • c语言实现udp广播和组播

    目录 1 UDP广播通信 2 UDP组播通信 1 UDP广播通信 单播 xff1a 数据包发送方式只有一个接受方 广播 xff1a 同时发给局域网中的所有主机 只有用户数据报套接字 xff08 使用UDP协议 xff09 才能广播 以192
  • Odoo10 中常见的 Widget 整理

    Widget是什么 是odoo中字段的显示形式 Odoo内置的widget widget 61 34 mail thread 34 xff1a 消息标签 widget 61 34 html 34 xff1a html相关标签 widget
  • C语言入门篇——介绍篇

    目录 1 什么是C语言 1 C语言的优点 3 语言标准 4 使用C语言的步骤 5 第一个C语言程序 6 关键字 1 什么是C语言 1972年 xff0c 贝尔实验室的丹尼斯 里奇和肯 汤普逊在开发UNIX操作系统时设计了C语言 xff0c
  • 力扣刷题——双数之和

    很多人去力扣刷题都是数组的第一题 xff0c 也就是双数之和 xff0c 相信这也是很多人劝退题目 xff0c 甚至对自己学过的知识产生了怀疑 xff0c 这真的是我学完C语言 xff0c Java xff0c Python或C 43 43
  • C语言入门篇——自定义数据篇

    目录 1 结构体 1 2 匿名结构体 1 3 结构体的自引用 1 4 结构体的声明和初始化 1 5 结构体的内存对齐 1 6 修改默认对齐数 1 7 结构体传参 2 枚举 3 共用体 xff08 联合体 xff09 1 结构体 设计程序时
  • C语言入门篇——文件操作篇

    目录 1 为什么使用文件 2 什么是文件 2 1程序文件 2 2数据文件 2 3文件名 3 文件的打开和关闭 3 1文件指针 3 2文件的打开和关闭 4 文件的顺序读写 5 文件的随机读写 5 1fseek 5 2ftell 5 3rewi
  • 【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数

    目录 字符串函数模拟实现 1 strlen模拟实现 2 strcpy模拟实现 3 strncpy模拟实现 4 strcat模拟实现 5 strncat模拟实现 6 strcmp模拟实现 7 strncmp模拟实现 8 strstr模拟实现
  • 【C】模拟实现memcpy,memmove内存函数

    目录 内存函数模拟实现 1 memcpy模拟实现 2 memmove模拟实现 3 测试案例代码 内存函数模拟实现 C 库函数 memcpy 从存储区 str2 复制 n 个字节到存储区 str1 这个函数在遇到 39 0 39 的时候并不会
  • 【C】模拟实现atoi,atof函数

    目录 atoi函数 atof函数 模拟实现atoi xff0c atof函数 1 atoi模拟实现 2 atof模拟实现 3 测试案例代码 atoi函数 atoi函数是将字符串转换成整数 函数头文件 xff1a include lt std
  • 英伟达JETSON XAVIER NX使用小记

    1 输入法问题 安装谷歌拼音 xff08 支持ARM64位系统 xff09 系统设置 gt 语言支持 gt 键盘输入法系统 gt 选择 fcitx gt 关闭 在终端中进行安装和部分卸载工作 xff1a sudo apt get insta
  • Spark | Stage进度条展示(showConsoleProgress)

    spark version 61 2 4 4 在执行Spark任务中 xff0c 经常会看到以下类似的Stage进度日志信息 xff0c 如下 xff1a Stage 0 gt 0 43 0 1753 Stage 0 gt 0 43 65
  • Ubuntu 安装odoo10 环境搭建

    安装时 xff0c 默认用户名为 odoo ubuntu 16开始 使用 systemd 管理服务 xff0c 但是systemd 兼容 sysv init 脚本 下载 odoo源码 从 http nightly odoo com 10 0
  • 无人机自动悬停的秘密

    无人机自动悬停的秘密 http www icpcw com Information Tech News 3244 324449 all htm 正文我来说两句 已有0 人参与 2014 11 11 10 36 18类型 xff1a 原创来源
  • ubuntu终端输入命令启动chrom浏览器

    文章目录 一 阻塞式打开 一 阻塞式打开 打开一个空白网页 google chrome 浏览指定网址 google chrome www baidu com google chrome https blog csdn net sandalp
  • C++之vector与指针

    文章目录 一 指向vector的指针1 amp xff1a 指向栈上的vector xff08 1 xff09 形式 xff08 2 xff09 局部变量自动释放 xff08 3 xff09 区分误区 2 new xff1a 指向堆上的ve
  • 《ROS机器人开发实践》第6.2.4节“在rviz中显示模型”问题总结

    输入 roslaunch mbot description display mbot base urdf launch后 xff0c 出现以下错误 解决方法 xff1a 在终端输入 source catkin ws devel setup
  • FreeRTOS堆栈溢出检查

    FreeRTOS堆栈溢出检查 RTOS任务都需要分配堆栈 xff0c 堆栈大小不合理 xff0c 会造成内存越界或者资源的浪费 如果在没有把握堆栈大小 xff0c 尽量将堆栈往大的方向设置 xff0c 这样能保证任务堆栈上下文切换不会溢出
  • PTZ云台开发过程中PELCO-D、PELCO-P协议遇到的问题

    最近学习了云台的一些东西 xff0c 比如云台的协议阿 xff0c 云台的调试什么 xff0c 通过这段时间努力终于把几个问题解决了 xff0c 一个是对于某个厂商 A 的云台出现的 pelco p 协议在波特率 2400 xff0c 48

随机推荐

  • apt-get 源和常识

    本文内容 xff1a 1 apt get的源换成阿里或163的 2 atp get的源的常识 一 概述 安装好Ubuntu它自带源是国外的 xff0c 访问较慢 xff0c 经常会出现连接失败的情况 所以建议将它替换为国内的 xff08 如
  • ROS安装rosdep update出现ERROR: unable to process source

    sudo gedit etc hosts 在最下面添加一句这个 xff1a 151 101 84 133 raw githubusercontent com sudo mkdir p etc ros rosdep sources list
  • 基于NavMesh寻路、漏斗寻路、RVO动态避障自创的服务器大规模寻路+动态避障算法的实现

    一 描述 TW项目是一个拥有较广阔野外空间的SLG游戏 xff0c 玩家的军队方阵可以在野外进行长距离行军 短距离自由行军 占领要塞 驻扎 形成战斗阵型战斗等行为 其中 xff0c 野外的山脉 河流等会产生静态阻挡 xff1b 而由玩家迁城
  • Python 日期的 加减 操作

    获取当前时间 coding 61 utf 8 import datetime now 61 datetime datetime now print now 日期输出格式化 所有日期 时间的api都在datetime模块内 datetime
  • 基于A*和势场寻路的快速小队伍动态势场避障寻路

    前言 先把本算法的适用场景和优缺点写在前面 xff0c 需要的可以继续看 xff0c 不适用的就可以直接略过了 然后在循序渐进介绍本算法 演示效果在最后 本算法适用场景 每次寻路以小队伍为单位 xff08 几个至几十个队员 xff09 队员
  • STM32 keil5 报错:flash download failed-cortex M3解决方法

    起因 因为之前自己使用的STM32都是使用的F4 xff0c 自己打了一块STM32F1C8T6板子 xff0c 焊好之后 xff0c 打开以前正点原子的例程的时候 xff0c 出现无法烧录的情况 xff0c 总是报这样的错误 xff0c
  • HTTP中的GET和POST方法详解

    一般来说GET是获取数据 xff0c POST是提交数据的 但是因为GET和POST都是HTTP的方法 xff0c HTTP又是基于TCP IP的关于数据在万维网中如何让通讯的协议 从本质上讲 xff0c GET和POST都是HTTP请求
  • 使用SocketTask,弃用wx

    经验总结 微信小程序websocket的注意事项 xff1a 使用SocketTask xff0c 弃用wx 示例代码 socketTask的示例代码如下 引用在微信小程序的一个页面中开启多个websocket连接的代码 var ws1 6
  • SimpleNES的编译与运行

    前言 如题 xff0c 最近搜索一些C 43 43 项目无意中看到它 xff0c 然后就动手构建了一把 xff0c 当然过程肯定会遇到一些问题的了 不然也不会写这篇文章跟大家分享了呀 xff0c 是吧 xff01 来来来 xff0c 先给大
  • 【注意/切记】 Android JIN开发过程中不要把long当jlong使用

    遇到问题 C C 43 43 调Java方法时直接把long类型的变量 xff0c 传给CallStaticVoidMethod导致对应的Java静态方法接收到了错误的long值 PS 实际的业务场比较复杂 浪费了好多时间去分析才定位到是这
  • Man手册常用快捷键之万事找h键

    最强最核心最根本的快捷键是 gt gt gt gt gt h 最核心 look everything you want to know is here 基本与常用 p 上翻一屏 control 43 p 上滚一行 n下播一屏 control
  • 2023年clang12编译问题与解决的记录

    最近编译clang12以及尝试基于clang开发一个C 43 43 的静态代码分析工具 xff0c 如下是遇到的环境相关的编译问题与解决方案 在此做个记录 xff0c 同时供可能会遇到同样问题的同学参考 环境说明 注 xff1a 如下是最终
  • Clang dump AST需要注意的事项

    Clang dump AST本质上是对一个OC C C 43 43 源文件编译单元执行编译 xff0c 即跟编译相关的配置都是要注意相关的参数 xff0c 比如依赖的头文件的路径 xff0c 特别编译的源文件依赖的其它路径下的头文件 xff
  • URI与URL的区别

    xff08 原网址 xff1a http zhidao baidu com question 38764759 html xff09 Web上可用的每种资源 HTML文档 图像 视频片段 程序等 由一个通过通用资源标志符 xff08 Uni
  • Python datetime  和 str 相互转化

    datetime 转化为 str now 61 datetime datetime now now strftime 39 Y m d H M S 39 print now 输出2012 03 05 16 26 23 870105 strf
  • BASE64编码规则

    Base64编码要求把3个8位字节 xff08 3 8 61 24 xff09 转化为4个6位的字节 xff08 4 6 61 24 xff09 xff0c 之后在6位的前面补两个0 xff0c 形成8位一个字节的形式 例如字符串 张3 x
  • Cygwin基本命令的使用方法

    原文链接 xff1a http blog chinaunix net space php uid 61 25580079 amp do 61 blog amp id 61 190413 基本操作命令 ls 以默认方式显示当前目录文件列表 l
  • 正确设置了charles,使用charles抓包某些app,无法抓到的原因(Android手机)

    Charles配置绝对正确 xff0c 还是使终抓不到包的可能的一种情况是 xff01 xff01 xff01 应用使用的网络库不支持代理 xff0c 所有的网络请求没有走代理 xff0c 而是走的正常wifi直连 当时的情况如下 xff1
  • 拉起抖音APP视频页的scheme

    拉起scheme地协议 snssdk1128 span class hljs regexp aweme span span class hljs regexp detail span span class hljs number 65344
  • 1. Windows下使用Mingw-w64 GCC编译安装Lua5.1.5

    除了一些游戏开发的脚本领域 xff0c 在以OpenResty作为Web框架的后端开发中 xff0c Lua也会大量的使用 xff0c 这就难免要对在Shell中测试 验证Lua语法 为此 xff0c 小编写了一篇在Windows环境下编译