Visual Studio 2017编译Lua 5.3.5

下载地址

官方网站:http://www.lua.org/ftp/

创建项目

打开Visual Studio,在主界面点击菜单栏的文件,先选中下拉菜单的新建,再点击子菜单的项目。如下图所示:
Visual Studio 2017编译Lua 5.3.5
弹出新建项目窗口,窗口左边是目录树,依次展开已安装、Visual C++,点击Windows桌面,之后在右边选择Windows桌面向导,在下边的名称输入框之中为项目取名为lua,点击位置输入框右边的浏览,弹出项目位置窗口,选择项目存放位置,最后点击确定。如下图所示:
Visual Studio 2017编译Lua 5.3.5
出现Windows桌面项目的向导窗口,应用程序类型默认为控制台应用程序,在其他选项中勾选空项目,之后点击确定。如下图所示:
Visual Studio 2017编译Lua 5.3.5
自动创建项目之后回到主界面,在工具栏选择编译版本为Release x64,可自行选择编译版本。如下图所示:
Visual Studio 2017编译Lua 5.3.5
在解决方案资源管理器右击项目,弹出右键菜单,选择在文件资源管理器中打开文件夹,即工作目录。如以下两图所示:
Visual Studio 2017编译Lua 5.3.5
Visual Studio 2017编译Lua 5.3.5
解压lua源码压缩包,打开lua源码根目录的src文件夹,复制除Makefile之外的所有文件至工作目录。如以下两图所示:
Visual Studio 2017编译Lua 5.3.5
Visual Studio 2017编译Lua 5.3.5

静态库

切换至Visual Studio主界面,在解决方案资源管理器右击项目,弹出右键菜单,先选中右键菜单的添加,再点击子菜单的现有项。如下图所示:
Visual Studio 2017编译Lua 5.3.5
弹出添加现有项窗口,选择除lua.hpp、lua.c和luac.c之外的源码文件,之后点击添加。如下图所示:
Visual Studio 2017编译Lua 5.3.5
在解决方案资源管理器右击项目,弹出右键菜单,选择属性。如下图所示:
Visual Studio 2017编译Lua 5.3.5
出现项目属性页,左边展开配置属性,选中常规,右边先展开常规,修改目标文件扩展名为.lib,再展开项目默认值,配置类型选择静态库(.lib),最后点击确定。如下图所示:
Visual Studio 2017编译Lua 5.3.5
在主界面点击菜单栏的生成,弹出下拉菜单,选择生成解决方案。如下图所示:
Visual Studio 2017编译Lua 5.3.5
输出窗口有生成过程,提示生成成功。如下图所示:
Visual Studio 2017编译Lua 5.3.5
生成的静态库lua.lib位于默认输出目录。如下图所示:
Visual Studio 2017编译Lua 5.3.5

动态库

编译动态库和静态库的步骤相似,只是项目配置不同,再次打开项目属性页,左边展开配置属性,选中其下的常规,右边修改目标文件扩展名为.dll,修改配置类型为动态库(.dll)。如下图所示:
Visual Studio 2017编译Lua 5.3.5
展开项目属性页左边的C/C++,选中预处理器,在右边的预处理器定义输入框之中添加LUA_BUILD_AS_DLL,以英文分号间隔,之后点击确定。如下图所示:
Visual Studio 2017编译Lua 5.3.5
点击菜单栏的生成,选择生成解决方案,输出窗口提示生成成功。如下图所示:
Visual Studio 2017编译Lua 5.3.5
生成的链接库lua.lib和动态库lua.dll位于默认输出目录。如下图所示:
Visual Studio 2017编译Lua 5.3.5

解释器

解释器相比动静态库,编译的源文件多出lua.c。可以选择重新创建项目编译解释器,或者基于编译动态库的项目编译解释器。

此处基于编译动态库的项目直接编译解释器,首先按照编译静态库的第一步,向项目添加现有项,即源文件lua.c。

然后还原项目属性,打开项目属性页,左边展开配置属性,选中其下的常规,右边修改目标文件扩展名为.exe,修改配置类型为应用程序(.exe)。如下图所示:
Visual Studio 2017编译Lua 5.3.5
展开项目属性页左边的C/C++,选中预处理器,在右边的预处理器定义输入框之中删除LUA_BUILD_AS_DLL,之后点击确定。如下图所示:
Visual Studio 2017编译Lua 5.3.5
点击菜单栏的生成,选择生成解决方案,输出窗口提示生成成功。如下图所示:
Visual Studio 2017编译Lua 5.3.5
生成的解释器lua.exe位于默认输出目录。如下图所示:
Visual Studio 2017编译Lua 5.3.5

编译器

编译器相比解释器,在编译的源文件之中,需要替换lua.c为luac.c,当然可以重新创建项目编译,或者基于编译解释器的项目编译。

此处基于编译解释器的项目直接编译,首先按照编译静态库的第一步,向项目添加现有项,即源文件luac.c。

然后操作解决方案资源管理器的目录树,依次展开项目lua、源文件,在其中寻找lua.c并右击之,弹出右键菜单,选择移除。如下图所示:
Visual Studio 2017编译Lua 5.3.5
弹出确认窗口,点击移除。如下图所示:
Visual Studio 2017编译Lua 5.3.5
打开项目属性页,左边展开配置属性,选中常规,右边修改目标文件名为luac,之后点击确定。如下图所示:
Visual Studio 2017编译Lua 5.3.5
点击菜单栏的生成,选择生成解决方案,输出窗口提示生成成功。如下图所示:
Visual Studio 2017编译Lua 5.3.5
生成的编译器luac.exe位于默认输出目录。如下图所示:
Visual Studio 2017编译Lua 5.3.5