1.luaä¸çexeå¨åªï¼
2.如何在Window系统安装Luarocks(踩坑篇)
3.LuaJIT源码分析(一)搭建调试环境
4.Linux上手动编译安装librime、码安librime-lua以及ibus-rime,码安提升中文输入法体验
5.Lua5.4 源码剖析——杂谈 之 如何调试Lua源码
6.IntelliJ IDEA Lua调试以及使用教程
luaä¸çexeå¨åªï¼
ä½ ä¸è½½çæ¯æºä»£ç åºè¯¥ä¸è½½äºè¿å¶æ件ï¼
ç´æ¥å°ç¾åº¦ä¸æç´¢ï¼LuaForWindows_v5.1.4-.exe
æè è¿å ¥ www.lua.org
ä¾æ¬¡åå»ä¸é¢å 项ï¼
download
左边binary ä¸é¢ç lua for windows
Download Lua_V5.1.4-.exe from Google Code
如何在Window系统安装Luarocks(踩坑篇)
了解Luarocks,码安Lua的码安软件包管理器,为Lua编程语言用户提供了安装和管理模块的码安便捷方式。Luarocks相当于Python的码安源码制作的过程pip,允许用户从中央存储库、码安本地文件或URL安装Lua模块。码安模块集成为Lua扩展,码安增强其功能。码安Luarocks还能协助管理模块间的码安依赖关系,确保所有必需模块自动安装。码安
若要安装Luarocks,码安首先需准备安装包和第三方工具。码安推荐使用Mingw作为编译环境,码安避免安装错误版本导致的编译问题。下载Mingw后,解压并放置在个人偏好位置,将可执行文件添加至环境变量中。通过命令行运行gcc --version,确认环境配置成功。
接着,下载Lua源码并解压,新建build.cmd文件,wp吹裙子源码输入编译指令。双击执行,待编译完成,即可在build文件夹中找到Lua执行文件。
下载Luarocks源码并解压,使用提供的编译指令在命令行中执行。配置环境变量后,便能轻松安装Lua的第三方库。
安装第三方Lua库时,可能遇到编译问题,如找不到md5对比工具,需要安装OpenSSL解决。在命令行输入lua命令后,可能会遇到找不到.dll文件的情况,可通过以下两种方法解决,确保顺利使用第三方库。
Luarocks简化了Lua开发者的软件包管理,提供了一种高效、便捷的方式扩展Lua功能,助力开发者更轻松地开发Lua应用程序。
LuaJIT源码分析(一)搭建调试环境
LuaJIT,这个以高效著称的lua即时编译器(JIT),因其源码资料稀缺,牛眼线指标源码促使我们不得不自建环境进行深入学习。分析源码的第一步,就是搭建一个可用于调试的环境,但即使是这个初始步骤,能找到的指导也相当有限,反映出LuaJIT的编译过程复杂性。
首先,从官方git仓库开始,通过命令`git clone https://luajit.org/git/luajit.git`获取源代码。GitHub上也有相应的镜像地址。对于调试,LuaJIT提供msvcbuild.bat脚本,位于src目录下,它将编译过程分为三个阶段:构建minilua,用于平台判断和执行lua脚本;buildvm生成库函数映射;以及lua库的编译和最终LuaJIT的生成。该脚本需在Visual Studio Command Prompt环境中以管理员权限运行,且有四个可选编译参数。
在调试时,我们无需这些选项,但需要保留中间代码。因此,需要在脚本中注释掉清理代码的部分。在Visual Studio 的下载类型网站源码位命令提示符中,切换到src目录并运行`msvcbuild.bat`。编译过程快速,成功时会看到日志信息。在src目录下,luajit.exe即为lua虚拟机。
接着,在src目录的同级目录创建一个VS工程,将源文件和头文件添加进来。初次尝试调试可能会遇到关于strerror函数安全性的警告,这可以通过在工程属性中添加_CRT_SECURE_NO_WARNINGS宏来解决。然而,链接阶段可能会出现重复定义的错误,这与ljamalg.c文件的编译选项有关。amalg选项用于生成单个大文件,以优化代码,但我们通常不启用它。
排除ljamalg.c后,再次尝试调试,可能还需要手动添加buildvm阶段生成的目标文件。当LuaJIT启动并设置好断点后,就可以开始调试源码了。至此,你已经成功搭建了一个LuaJIT的PHP网络应用 源码调试环境,为深入理解其工作原理铺平了道路。
Linux上手动编译安装librime、librime-lua以及ibus-rime,提升中文输入法体验
Linux下的中文输入法世界如同一个可自定义的建筑平台,Fcitx和iBus作为基础框架,提供了丰富的可能性。然而,rime输入法就像一个未装修的毛坯房,需要用户自行添加特色和功能。问题在于,系统预装的iBus和ibus-rime版本可能较旧,无法完全解锁rime的强大性能和特性,比如薄荷输入法的高级配置。
本文将引导你在Debian和Ubuntu这样的Linux发行版上,如何手动编译和安装librime、librime-lua以及ibus-rime,以升级你的中文输入体验。首先,我们需要卸载旧的ibus-rime依赖,并确保安装必要的编译工具。接着,通过Git克隆源代码,注意可能需要更新librime和plum的版本。librime-lua插件对于支持Lua的配置至关重要,我们通过脚本安装并合并到librime中,同时注意控制编译进程以避免内存问题。
编译安装完成后,可能需要注销并重新登录桌面环境以添加Rime引擎。对于希望使用薄荷输入法的用户,可以使用plum轻松安装配置。无论选择哪种方式,手动编译ibus-rime都能让你体验到最新的输入法功能和高度定制性。
最后,分享一个个人经验:尽管Fcitx5-rime也很强大,但因习惯和使用场景,我更倾向于ibus。每个人的需求和偏好不同,你可能已经在使用最符合你需求的输入法方案。不妨分享一下你的输入法选择和使用体验吧!
Lua5.4 源码剖析——杂谈 之 如何调试Lua源码
我们有时候写了一段Lua代码,希望能通过断点调试的方式看一下我们的代码在执行过程中Lua虚拟机的状态与运行流程。本篇教程我将教大家Windows与Mac环境下如何配置Lua源码调试环境。
Lua调试环境需要有Lua源码,我们从官网下载源码:
Windows下Lua源码调试环境搭建
1)下载Visual Studio,可自行在官网下载最新版本即可:
2)打开VIsual Studio,创建一个新的C++控制台工程,我这里以Visual Studio 版本进行举例:
项目可任意命名,本例中我们命名为TestLua:
3)工程中添加Lua源码文件:
3.1)拷贝源代码文件到项目的文件夹,Makefile文件可以不拷贝:
3.2)把上面这些文件导入工程:
"
.h
头文件导入:导入所有".h"后缀文件到头文件文件夹中(右键头文件->添加->现有项):
"
.c
源文件导入:导入所有".c"后缀文件到源文件的文件夹(右键源文件->添加->现有项):
4)生成exe可执行文件:
文件都导入完成了,这时候如果按"生成"或者"F5",会有如下的报错:
这是因为除了我们创建项目工程的时候自带源文件中的一个main函数以外,Lua源码中也定义了两个Main函数。他们分别对应的是luac编译工具的启动函数和lua运行工具的启动函数。要想编译通过,我们只需要根据自己要调试目的,从3个main里面把用不到的2个main删掉或者重命名即可。
本例中,我打算在自己的main里面实现通过dofile函数执行一个Lua文件的功能,所以我不需要启动lua和luac指令控制台,所以我把他们的main函数改名:
luac.c:把main函数改名为luac_main函数:
lua.c:把main函数改为lua_main:
上述源码中多余的2个main函数都改名了,这时候已经能编译通过并生成出exe可执行文件了。
接下来我们可以开始编写自己的main函数逻辑了,打开TestLua.cpp,输入以下内容,作用是运行一个在项目目录下名字为"testlua.lua"的lua文件:
5)testlua.lua文件创建与编写:
上述代码在运行时会执行testlua.lua文件,接下来我们就需要在工程目录下创建这个将要被执行的testlua.lua文件:
打开testlua.lua文件,添加任意lua代码,这里我们简单调用print打印一句信息:
6)在Visual Studio中按“F5”开启调试,可以看到控制台被成功运行,我们的lua文件也被成功执行,打印出了信息:
7)断点调试指令OpCode:
学习过我的《Lua源码剖析 之 虚拟机》系列教程的同学应该知道Lua的指令就是各种OpCode的执行,我们可以在《lvm.c》的下面这个地方加断点再按F5重新启动程序,程序在每执行一条OpCode指令就会在这处代码断点下来,这时候我们就能看到下一条要执行的OpCode是哪一条了:
在本例中的print函数最终会执行到OP_CALL这个调用分支:
Windows环境下搭建Lua源码调试环境的教程到此结束。
Mac下Lua源码调试环境搭建
因为大部分流程与上面Windows一样,所以我下面会省略一些重复步骤。
1)下载XCode,可自行在AppStore进行下载。
2)打开XCode,创建一个新的C++控制台工程,本例中命名为TestLua:
3)工程中添加Lua源码文件:
3.1)拷贝源代码文件到项目的文件夹,Makefile文件可以不拷贝:
3.2)把拷贝后的文件导入工程:
不需要区分".h"和".cpp",全选导进来就好了:
4)与Windows流程同样,把源码自带的2个main函数改名:
luac.c:把main函数改名为luac_main函数:
lua.c:把main函数改为lua_main:
把源码中多余的2个main函数都改名了,接下来同样,开始编写我们的main.cpp,打开该文件并添加代码如下代码。为了在mac下文件读取代码更简洁,在下面的Lua文件我暂时先使用文件的绝对路径,暂时把testlua.lua文件放在我的mac的桌面上进行读取:
5)在mac的桌面上创建testlua.lua文件,添加任意lua代码:
6)同理可正常运行或者加断点进行调试,这里不再赘述:
总结
本文我们学习了如何在Windows与Mac下搭建Lua源码调试环境。另外,我们上述使用的例子是通过dofile运行一个lua文件,同学们也可以试试保留lua.c里面的main函数,删掉另外两个,此时按开始调试可启动lua的即时解析控制台,在控制台里面可自行输入任意Lua代码,并可断点查看即时运行状态或最终结果,感兴趣的同学可以自行试试。
不过,尽管能调试Lua源码,但如果之前没有学习过我的那些Lua源码剖析教程,可能很多地方会看不懂,所以这里建议有空的同学还是可以先去学习一下的。
谢谢阅读。
IntelliJ IDEA Lua调试以及使用教程
为了提升开发效率和 Lua 代码调试的便捷性,IntelliJ IDEA 集成了 EmmyLua 插件。安装步骤如下:
1. 在 IntelliJ IDEA 的设置中搜索并安装 Emmylua 插件。
2. 通过 Run/Debugger 配置,添加 Emmy Debugger 类型,设置自己的 package.path。
3. 遇到如端口冲突的常见问题时,直接参考错误提示解决。
通过 IntelliJ IDEA,用户可以轻松生成 Lua API,得到 Unity 智能提示,实现代码自动生成和优化。IDEA 还能辅助反编译 jar 包源码,帮助开发者理解复杂代码结构。遇到内存溢出问题时,调整 IDEA 的 VM 设置参数是关键。
对于 IntelliJ IDEA 的离线安装,如需安装 lombok 插件,首先下载对应版本的离线文件,然后在 IntelliJ IDEA 设置中选择“安装插件来自磁盘”。确保下载的插件与当前 IDEA 版本匹配,以避免安装失败或 IDEA 无法启动的情况。
2024-11-28 15:47
2024-11-28 14:44
2024-11-28 14:37
2024-11-28 13:52
2024-11-28 13:42
2024-11-28 13:28