### LUA编译笔记 #### 一、源码准备 在开始之前,首先需要准备好Lua的源码。可以通过访问Lua官方网站(http://www.lua.org/download.html)下载最新版本的Lua源码包,本例中使用的版本为`lua-5.1.4.tar.gz`。 #### 二、目录结构介绍 解压`lua-5.1.4.tar.gz`后,我们会得到以下目录结构: 1. **etc**:包含编译时需要用到的一些文件、头文件以及一些用于辅助编译的脚本如`luavs.bat`。 2. **src**:存放Lua核心源代码的地方。 3. **test**:提供了一些用于测试Lua功能的`.lua`文件。 #### 三、使用`luavs.bat`在VS2008上编译Lua `luavs.bat`是一个用于简化Lua编译过程的批处理文件。它的主要作用是在不需要手动创建项目的情况下,生成Lua的核心库文件(`.dll`和`.lib`)。 1. **环境准备**:确保安装了Visual Studio 2008,并且可以通过命令行访问`Visual Studio Command Prompt 2008`。这样做的目的是确保环境变量中包含了必要的编译工具路径。 2. **运行`luavs.bat`**:将`luavs.bat`文件拷贝到解压后的Lua主目录下(即`etc`文件夹的上级目录)。然后,在命令行中进入该目录并运行`luavs.bat`。需要注意的是,不要将`luavs.bat`放在`etc`文件夹内运行,因为这会导致某些编译问题。 运行结果将会在`src`目录下生成以下几个文件: - **lua51.dll**:Lua的动态链接库,用于提供Lua的功能给其他应用程序调用。 - **lua51.lib**:Lua的静态库,通常在编译应用程序时作为链接器的输入,以便链接Lua的功能。 - **lua.exe**:Lua的解释器,可以直接运行Lua脚本。 - **luac.exe**:Lua的编译器,用于将Lua脚本编译成字节码文件。 #### 四、深入解析`luavs.bat` 为了更好地理解`luavs.bat`是如何工作的,下面对这个脚本进行逐行解析: ```batch @setlocal @set MYCOMPILE=cl /nologo /MD /O2 /W3 /c /D_CRT_SECURE_NO_DEPRECATE @set MYLINK=link /nologo @set MYMT=mt /nologo ``` 这里定义了几个环境变量: - `MYCOMPILE`:设置编译器选项,包括编译器名称(`cl`)、禁用日志输出(`/nologo`)、使用多线程的动态链接库版本(`/MD`)、最大优化(`/O2`)、警告级别3(`/W3`)、只编译(`/c`)以及定义宏`_CRT_SECURE_NO_DEPRECATE`以避免某些安全警告。 - `MYLINK`:设置连接器选项,包括连接器名称(`link`)以及禁用日志输出。 - `MYMT`:用于处理清单文件。 接下来的部分用于生成动态库(`.dll`)和相关资源: ```batch cd src %MYCOMPILE% /DLUA_BUILD_AS_DLL l*.c del lua.obj luac.obj %MYLINK% /DLL /out:lua51.dll l*.obj if exist lua51.dll.manifest ^ %MYMT% -manifest lua51.dll.manifest -outputresource:lua51.dll;2 ``` 这段代码的主要工作流程是: - 更改当前目录至`src`。 - 使用`MYCOMPILE`编译所有以`l`开头的`.c`文件,并定义宏`LUA_BUILD_AS_DLL`以指示编译器生成动态链接库。 - 删除中间文件`lua.obj`和`luac.obj`。 - 使用`MYLINK`链接器生成动态链接库`lua51.dll`。 - 如果存在`lua51.dll.manifest`文件,则使用`MYMT`处理清单文件,将其嵌入到`lua51.dll`中。 类似的逻辑也应用在生成`lua.exe`和`luac.exe`上。 #### 总结 通过上述步骤,我们可以成功地在Visual Studio 2008环境中编译Lua并生成所需的核心库文件。对于需要自定义Lua行为或集成Lua到现有项目的开发者来说,这一过程尤为重要。掌握了`luavs.bat`的使用方法,可以帮助开发者快速有效地完成Lua的编译工作,提高开发效率。
- 粉丝: 50
- 资源: 36
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Vue框架的碳核算与碳交易网站Web前端设计源码
- 基于Python的半手工交互式物体识别设计源码
- 基于Java语言的飞机大战游戏设计源码
- 基于Winform和Python的PDF操作工具设计源码
- 基于Java语言的中华字典设计源码
- 基于Java和Shell语言的数据库Elasticsearch数据同步xxjob分布式任务调度工具设计源码
- 基于《Python可以这样学》教材的Python学习资源设计源码
- 光伏储能同步发电机VSG并网仿真模型C 光伏阵列搭建的光伏电池模型 光伏:采用扰动观察法最大功率点MPPT跟踪控制 储能:蓄电池
- 光伏MPPT同步发电机(VSG)并网仿真模型 结构:前级光伏板采用扰动观察法最大功率跟踪给定值,然后将该功率通过直流母线电容电压
- 淘小说 10.0.2会员版_暗影.apk
- 1
- 2
前往页