自己编译lua源码

Lua源码Lua编译库及解释器、编译器编译 1.下载Lua源码:http://www.lua.org/download.html 2.Lua库编译 2.1   Lua库的静态编译 1.用VS2013创建Win32控制台项目,选择静态库,生成空白项目 2.在项目文件目录新建src目录,拷贝Lua源码到该目录,添加到项目 3.项目>>属性>>c/c++>>预处理器 添加宏_CRT_SECURE_NO_DEPRECATE;_SCL_SE 阅读详情

对于一个开源工程,开始学习它的第一步自然是编译工程。

使用vc编译lua,在网上已有许多介绍,但“纸上得来终觉浅”,自己走一遍还是有必要的。

步骤如下:

1.下载源代码,从lua.org下载最新源代码包lua-5.2.2,解压到本地

2.打开vc建立一个solution,就叫lua.sln

3.创建一个名为liblua的project(lua库),添加除lua.c和luac.c以外的所有代码文件,将lua库编译为dll(这里注意,需要在预处理器中添加LUA_BUILD_AS_DLL和LUA_CORE两个宏)

4.创建一个名为lua的project(lua解释器),添加除luac.c以外的所有代码文件

5.创建一个名为luac的project(lua编译器),添加除lua.c以外的所有代码文件

6.编译、链接即可。注意lua和luac两个工程没有依赖liblua动态库,而是直接使用的源代码,这是因为luac里用到的一些API缺省情况下是不被liblua导出的,需要改些设置,所以直接用源代码省事了。

生成结果:

  lua库:liblua.dll、liblua.lib

  lua解释器:lua.exe:

  lua编译器:luac.exe

完成了编译,下一步当然是顺便运行个Hello World玩玩:

1.打开记事本,输入如下一行代码:

print("Hello World!")

保存成hello.lua

2.启动命令行,进入lua.exe所在目录,运行命令行:

>lua hello.lua

显示输出:Hello World!

 

=========================================================================

 

    与 平台无关。Lua几乎可以运行在所有我们听说过的系统上,如NextStep、OS/2、PlayStation II (Sony)、Mac OS-9、OS X、BeOS、MS-DOS、IBM mainframes、EPOC、PalmOS、MCF5206eLITE Evaluation Board、RISC OS,及所有的Windows和Unix。Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI (ISO) C,这意味着只要你有ANSI C编译器你就可以编译并使用Lua。

 

    要在C++中使用Lua非常简单,不管是GCC,VC还是C++Builder, 最简单的方法就是把Lua源码中除lua.c,luac.c和print.c以外的所有c文件与你的代码一起编译链接(或加入到工程中)即可。

 

    因为Lua是用C语言写的,除非编译lua库时指定编译器强制以C++方式编译,否则在C++工程中应该这样包含lua头文件:

extern "C" {

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

}

 

======================================================================

 

lua 5.2.3 VS2012编译方法

准备:

  1. 新建一个空解决方案
  2. 打开解决方案目录,新建文件夹“include”和“src”
  3. 复制源码中所有.h文件到include目录,所有.c文件到src目录
  4. 删除src目录下的lua.c、luac.c

编译dll:

  1. 新建一个win32 dll的空项目
  2. 修改包含目录,在其中添加include目录
  3. 把src目录下的所有文件全部加入项目
  4. 添加define:LUA_BUILD_AS_DLL、_CRT_SECURE_NO_WARNINGS
  5. 可选:修改属性→C/C++→代码生成→运行库,为多线程,不依赖VC运行库dll
  6. 可选:新建一个资源文件,设置dll的版本信息

编译静态库:

  1. 新建一个win32 静态库的空项目
  2. 修改包含目录,在其中添加include目录
  3. 把src目录下的所有文件全部加入项目
  4. 添加define:_CRT_SECURE_NO_WARNINGS

 

 

Ubuntu下编译lua源码 本文首发在我的个人博客:https://jlice.top/p/6s16d/。欢迎大家前去参观,么么哒~ lua是门非常小巧的脚本语言,官网:lua官网。下载其源码后,解压: tar -zxvf lua-5.3.1.tar.gz 进入目录并make: cd lua-5.3.1/ make linux 报错: lua.c:80:31: fatal error: readline/readl... 阅读详情

相关推荐

Windows中编译Lua源码

Windows中编译Lua源码 编译静态库、动态链接库、解释器、编译器

corfox_liu的专栏 1163

手动编译lua源码并结合C++编写程序

手动编译lua源码并结合C++编写程序

qq_41103091的博客 659

VS2015编译 Lua源码

Lua作为一门热门的脚本语言, 在游戏,程序热更新等领域使用很广,Lua的解释器是用C语言写的,源码不过一万多行。作为程序员,详细学习一门语言的源码是很有必要的,可以说Lua的源码,是程序员最容易掌握的,不像JVM那么庞大。 Lua和Java一样,也是基于“虚拟机”的,下面介绍Lua源码的编译方法,开发工具是VS2015, 源码版本Lua5.3.4, 没有该版本的,可...

琅嬛福地 876

Windows下lua的编译与环境搭建

windows环境下编译lua源码生成编译器和动态库

faybull的博客 1万+

luadec反编译lua文件(),

找了好久终于找到这个,亲自测试,基本上能够全部反编译出来。

luadec51:Lua 5.1版的Lua反编译器

总览 LuaDec for Lua 5.1是针对Lua 5.1.x版本的Lua反编译器 它基于Hisham Muhammad的luadec(针对lua 5.0.x) LuaDec51是免费软件,并且使用与原始LuaDec相同的许可证 当前,它具有以下功能: 全面支持Lua 5.1操作码 增加了对去除调试信息的文件的支持 包括尝试确定在哪里声明本地人的启发式方法 当遇到无法反编译的东西时,它将尝试继续反编译 它具有内置的反汇编程序,易于阅读反汇编 它包括两个基于ruby的工具,可帮助进一步纠正反编译脚本 状态 当前版本是2.0 目前,luadec51可以反编译lua脚本的大多数构造,包括剥离了调试信息的脚本。 它仍然有一些缺点: 复杂的条件表达式通常会破坏输出 while和重复..until循环未处理 本地降级猜测器通常会猜测本地人将NEWTABLE和SETLIST操作码声明为错误 针对luadec 3.0的计划: 新的条件处理引擎 用法 要使用luadec,您必须先对其进行编译。 阅读以下部分以获取更多信息 要使用基于ruby的工具进行比较和luadecguess,您还需要在

JAVA-03

今日内容 数据输入 顺序结构 选择结构之if 选择结构之switch 数据输入 1.1 键盘录入的基本使用 问题1: 键盘录入很常用,如果每个程序员自己实现将非常麻烦,所以JDK的开发人员帮助我们实现了获取键盘录入数据的功能,把该功能定义到一个叫做Scanner的类中,同时把这个Scanner类放入java.util包中 问题2: 如何使用jdk中的某个包中的某个类呢? java中数据类型分为基本类型(四类八种)和引用类型,对于引用类型的使用有固定的三个步骤 然后键盘录入java.util.Scanner类

weixin_50537480的博客 1080

luadec:lua 5.1,5.2和5.3的Lua反编译器

总览 LuaDec是lua 5.1的Lua反编译器,并且是lua 5.2和5.3的实验版。 它基于Hisham Muhammad的luadec,其针对Zsolt Sz的lua 5.0.x和LuaDec51。 Sztupak。 LuaDec是免费软件,并且使用与原始LuaDec相同的许可证。 编译中 git clone https://github.com/viruscamp/luadec cd luadec git submodule update --init lua-5.1 cd lua-5.1 make linux cd ../luadec make LUAVER=5.1 如果要为lua 5.2或5.3构建它,只需将上面的5.1替换为5.2或5.3。 还有vc2008的项目文件,已针对vc2008和vc2013进行了测试。 编译之前,请确保lua-5.1,lua-5.2或lua-5.3中的源正确。 用法 反编译lua二进制文件: luadec abc.luac 反编译lua源文件以进行测试和比较: luadec abc.lua 分解lua源代码或二进制文件luadec

lua脚本外挂写法[全网最全最早发布]

-----------------------------------------------------------------------------------------------------------------------------------------------下面是放上源码就好了。{["value"] = 修改后的值, ["offset"] = 偏移, ["type"] = 内存类型,["freeze"] = false},偏移是到主特征的值的个数。

m0_67942528的博客 7542

MFC工具栏增加EditBox和Button

1. 在资源视图中增加EditBox, Button控件,ID分别为ID_EDIT_SEED, ID_BTN_SEED 2. 在CMainFrame中增加成员变量 CMFCToolBarEditBoxButton *m_editSeed; CMFCToolBarButton *m_btnSeed; 3. 在CMainFrame::OnCreate中创建控件 m_editSeed = new CMFCToolBarEditBoxButton(ID_EDIT_SEED, GetCmdMgr()-&.

学习是为了探索这个世界的本质 802

推荐系统召回总结(持续更新)

推荐系统架构 候选池:可供推荐的物料候选池,对于图文、短视频、新闻等来说通常是最近N天的新物料组成的集合,定期进行物料更新。 召回:从候选池中选出和用户相关的物料,交给后面的排序模块进行打分。召回面对的候选集通常是数十万或者百万甚至千万的量级,检索过程必须轻量快速。通常由多路召回组成,保证不遗漏且相关性、多样性尽量好,可以分为非个性化召回和个性化召回。 粗排:对召回选择的几千或者几百候选物料进行排序,快速打分选出topN,减少精排的压力,兼顾精准与效率。 精排:对粗排的结果进行精准排序,这个环节需要特征尽可

whgyxy的博客 2515

windows下编译lua源码

因为之前一直使用lua for windows来搭建lua的使用环境,但是最新的 lua for windows 还没有lua5.2,我又想用这个版本的lua,所以被逼无奈只能自己编一下lua源码。 首先从lua的官网下载你想要使用的lua源码,比如我下载的就是lua5.2。解压后内容如下: 所有的lua源码都放在了 src 文件夹下,当然,不同的lua版本目...

weixin_34202952的博客 568

彻底解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

renkai721的专栏 24万+

lua源码编译linux,Windows下编译Lua源码

因为之前一直使用首先从所有的lua源码都放在了 src 文件夹下,当然,不同的lua版本目录结构有可能不一样,但是都会有 src 这个文件夹,只有这个才是我们编译必须的。而且lua越做越精简了,5.1的版本里面还有一些test的例子之类的,5.2就只剩下必须的内容了。然后,如果是第一次编译lua,还是建议看一下doc文件夹下面的 readme.html。我就是通过那个才知道编译lua必备的文件的。...

weixin_36289742的博客 521

【WSN定位】基于AOA算法实现目标无源定位附matlab代码

1 简介 2 部分代码 clear all; close all; clc;​stations = [0 0 0;20 0 0]; %基站位置​X = -100:100; %生成目标位置Y = X.*sin(X);Z = X+Y;N = length(X);Locations = zeros(N,3);angs = zeros(N,4);for i = 1:N angs(i,:) = Angs(stations*1e3,[X(i),Y(i),Z(i)]*1e3);end​for

qq_59747472的博客 2308

【YOLOv11】从零搭建基于YOLOv11深度学习算法的农作物虫害检测系统(附带环境搭建+完整代码+讲解)

《基于YOLOv11的农作物病虫害智能检测系统》项目摘要 本项目开发了一个基于YOLOv11深度学习算法的农作物病虫害检测系统,支持玉米、水稻、草莓和西红柿等四大类经济作物的30多种病虫害识别。系统采用多模态检测方式,支持图片、视频和实时摄像头输入,并集成了完整的Web应用框架。 技术架构上,系统以PyTorch实现YOLOv11算法为核心,结合Flask搭建深度学习服务,SpringBoot构建业务后端,Vue3+TypeScript开发前端界面,MySQL数据库存储检测数据。系统具备用户权限管理功能,支

AnChenliang_1002的博客 812

Lua5.3.5源码编译

首先从lua官网下载源码http://www.lua.org/download.html并解压: VS2017 新建项目->控制台应用 将解压出来的src文件夹,拷贝到解决方案目录下 建好项目,添加lua源码: Ctrl+A 选择src目录下所有文件,并添加至项目 至此准备工作完成,接下来分别编译Lua解释器Lua.exe,Lua编译器Luac.exe,...

caichengji1的博客 2038

Uni-App 使用极光推送完整指南

Uni-App集成极光推送的完整指南:从注册极光账号到代码实现。包含前期准备(获取AppKey、注册厂商账号)、Uni-App配置(插件导入、初始化代码)、高级功能(角标设置、Java后台接口)及常见问题排查。详细说明了推送监听、registrationID获取、消息接收处理等核心功能实现步骤,并提供两种推送接口示例(按平台推送和统一推送)。适合需要在Uni-App项目中实现推送功能的开发者参考。

cyj0919的博客 427

【Lua】---Window下编译Lua源码

Window下编译Lua源码 源码下载: http://www.lua.org/download.html   编译参考: http://www.lua.org/manual/5.3/readme.html   编译工具: VS005 编译方法: 编写bat脚本调用cl.exe   脚本如下: @rem Build Lua Src 5.3 by mkLua.bat@rem Script to build L

加菲猫的の小窝 1566

利用大规模生物活性挖掘,计算识别针对癌基因驱动蛋白 EGFR、BRAF 与 CDK4 的高亲和力抑制剂

背景:精准癌症治疗需要小分子抑制剂与致瘤蛋白靶点之间的精确匹配。方法:我们使用 Python 及 ChEMBL 数据库 API 开发了一套计算流程,系统性地筛选针对 EGFR、BRAF 与 CDK4 的高亲和力配体。对 IC50 < 1000 nM 的生物活性进行过滤,并检索候选化合物的分子结构(SMILES)以供后续优化。结果:本研究共识别出 [插入总数] 种独特化合物。其中,对 BRAF 激酶而言,我们挑选了一批 IC50 低至 6.0 nM 的高效实验性化合物。

u012133341的博客 96

OpenClaw实战系列06:持久记忆与RAG知识库构建——让AI真正“记住”你

本文介绍了OpenClaw AI助理的持久记忆与RAG知识库构建功能。OpenClaw采用"文件即真理"的独特设计,所有记忆都以Markdown文件形式存储,支持直接编辑和Git版本管理。记忆系统分为三层:长期精炼记忆(MEMORY.md)、日常日志(按日期存储)和归档记忆。文章详细说明了环境配置步骤,包括安装必要组件、创建目录结构、设置API密钥,并提供了OpenClaw主配置文件的完整参数说明。该系统实现了跨会话、跨平台的持久化记忆,使AI助理能真正理解用户需求。

PeterPan的博客 1171

Visual Studio内引用Lua解释器,编译Lua源码,执行Lua脚本

VIsual Studio内引用Lua解释器,编译Lua源码,执行Lua脚本

孙君的空间站 3910

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

如何编译lua源码

介绍如何编译lua源码

iDaDi的博客 698

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用Cmake从源码编译Lua

记录了使用cmake从源码编译lua的方法

qq_39377889的博客 1395

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Windows下编译Lua源码

Windows下编译Lua源码 [日期:2014-02-11] 来源:Linux社区  作者:rangercyh [字体:大 中 小] 因为之前一直使用 lua for windows 来搭建lua的使用环境,但是最新的 lua for windows 还没有lua5.2,我又想用这个版本的lua,所以被逼无奈只能自己编一下lua

Jchn lau 3239
上一篇: lua userdata 汇总
下一篇: 在项目中使用libcurl,解决编译链接错误
oilcode
博客等级 码龄14年 47粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值