Lua源码编译
本文最后更新于 2024年8月6日 凌晨
下载源码
源码的下载以及版本请参考Lua: download area进行下载。由于我是准备用于Hades2的Mod开发,因此选择和游戏一样的lua52.dll中的5.2.2版本。下载会得到一个tar.gz
文件,将其解压后,需要找到其中的src文件夹,此文件夹将会在后续编译源码使用。除此之外,你还需要下载Visual Studio,注意不是VSCode,我们需要的是紫色logo的那个Visual Studio,同时你还需要对这个软件进行一定的配置。
解决方案建立
Visual Studio2022中,选择新建空白解决方案,解决方案名称随意(我这里直接默认的Solution1),然后选择一个合适的地方存放代码,我这里存放在了F:\Programme\luabuild\
:
在解决方案资源管理器中,右键->添加->新建项,分贝建立三个新的空项目(C++),分别命名为lua
,liblua
和luac
:
最终你的解决方案资源管理器应该长这样:
繁琐的配置
源码与引用添加
在第一步我们下载得到了压缩包,将解压后里面的整个src文件夹复制到解决方案的根目录,即F:\Programme\luabuild\Solution1
中:
下一步,我们需要为每一个项目添加代码。
对于
liblua
,右键->添加->添加现有项,把src文件夹下除了lua.c、luac.c这两个文件都添加进项目中:对于
lua
,右键->添加->添加现有项,只选择添加src/lua.c
一个文件。然后右键->添加->引用,选择liblua
:对于
luac
,将src中除了lua.c文件的其余代码文件都添加到luac中。
项目配置
接下来我们要开始配置了。所有的项目配置都需要在对应项目右键,然后选择属性(对应的快捷键默认是Alt+Enter
),接下来我会定义一下操作:
在打开的项目属性页中,最顶上的选项中配置为Release和x64平台,如图所示:
配置属性->常规->配置类型: 选择动态库(.dll),如图所示:
C/C++ ->预处理器:预处理器定义,选择<编辑…>,添加如下两行(第二行可能和使用的是VS2019/2022有关,我是2022版本,参考博文里面是2019,2022版本似乎不加第二行会报错):
1
2LUA_BUILD_AS_DLL
_CRT_SECURE_NO_WARNINGS
C/C++ -> 高级:编译为,选择编译为C代码(/TC)
接下来的内容很重要,针对不同的项目,需要进行不同的配置!
- 对于
liblua
,需要执行1234,共四个步骤。 - 对于
lua
和luac
,需要执行134三个步骤,没执行的第二个步骤检查是否配置类型为默认的“应用程序(.exe)”!
生成结果
至此配置全部完成。随后点击左上角的调试开始按钮等待生成,注意选择Release x64:
最后你应该可以在x64文件夹中的Release找到编译后的文件内容。
Moho Plugin API (proof-of-concept) - Moho Forum (lostmarble.com)