vs编译Lua最新源码,生成动态链接库版本

时间:2024-05-18 16:48:34

一、去官网下载lua5.3.5源码包
https://www.lua.org/download.html
vs2017编译Lua最新源码,生成动态链接库版本
点击download可以看到历时版本:
https://www.lua.org/ftp/
vs2017编译Lua最新源码,生成动态链接库版本

这里可以看到需要的版本,点击下载。
二、建立VS工程
vs2017编译Lua最新源码,生成动态链接库版本
点击确定
vs2017编译Lua最新源码,生成动态链接库版本
这里根据需要选择x64,还是x86。下面以Release版本为例(Debug版本的编译过程也基本相同的)

三、解压lua源码包
将下载的lua源码包解压出来,我这里解压到了E盘根目录,以此路径为例:
vs2017编译Lua最新源码,生成动态链接库版本
vs2017编译Lua最新源码,生成动态链接库版本
E:\lua-5.3.5\src 这个路径就是我们全部的lua源文件了。

四、编译过程
1.生成lua动态链接库(dll)
vs2017编译Lua最新源码,生成动态链接库版本
解决方案-> 右键 -> 添加 -> 新建项目 -> 项目名称为lua
vs2017编译Lua最新源码,生成动态链接库版本
将项目设置成Release版,x64位,以下均以编译Release版为例(如果需要编译Debug版也是一样的编译过程)
将lua设置为启动项目:
vs2017编译Lua最新源码,生成动态链接库版本
将lua源码文件夹中,除lua.c和luac.c文件外的其余全部源码文件添加到lua工程中
vs2017编译Lua最新源码,生成动态链接库版本
vs2017编译Lua最新源码,生成动态链接库版本
设置为dll动态库
vs2017编译Lua最新源码,生成动态链接库版本
在“C/C++” -> “预处理器” -> “预处理器定义” 中添加LUA_BUILD_AS_DLL,添加完后要记得点击保存。
vs2017编译Lua最新源码,生成动态链接库版本

设置完后,就可以编译。
生成lua.lib和lua.dll
vs2017编译Lua最新源码,生成动态链接库版本
新建一个build目录,将生成的这两个文件进去,如图所示:
vs2017编译Lua最新源码,生成动态链接库版本

2.生成luac.exe
直接在解决方案上右键->添加->新建项目,项目名为luac
vs2017编译Lua最新源码,生成动态链接库版本
vs2017编译Lua最新源码,生成动态链接库版本
将lua源码包中src目录中的除lua.c外的所有文件添加进去:
vs2017编译Lua最新源码,生成动态链接库版本
检查一下设置:
vs2017编译Lua最新源码,生成动态链接库版本
添加刚才生成的lua.lib:
首先是添加路径:
vs2017编译Lua最新源码,生成动态链接库版本
添加lua.lib
vs2017编译Lua最新源码,生成动态链接库版本

将luac项目设置为启动项目,然后编译:
vs2017编译Lua最新源码,生成动态链接库版本
3.生成lua.exe
将刚才的lua5.3.5项目设置为启动项目,这一步对后面的windows上调用C语言库至关重要。这里要生成的lua.exe是动态库版本的,这一步需要连接的是第一步中生成的lua.lib。具体过程如下:
添加除lua源码包src目录中的所有头文件和lua.c文件,其余.c文件一个也不要:
vs2017编译Lua最新源码,生成动态链接库版本
vs2017编译Lua最新源码,生成动态链接库版本
vs2017编译Lua最新源码,生成动态链接库版本
vs2017编译Lua最新源码,生成动态链接库版本
编译生成:
vs2017编译Lua最新源码,生成动态链接库版本
现在将上面生成的文件都复制到一个文件夹中:
vs2017编译Lua最新源码,生成动态链接库版本
留意lua5.3.5.exe的大小,这个是动态库版本,所以它只有18KB,

把生成的全部文件放一起,重命名(为了好看一些):
vs2017编译Lua最新源码,生成动态链接库版本
至此已经全部生成完毕。
可以将这个源码路径复制到自己的某个路径下使用了。
例如,我将这个目录整个复制到了D盘的D:\Program Files目录下。
vs2017编译Lua最新源码,生成动态链接库版本
那么我就将lua.exe所在的路径添加到环境变量中。

在cmd窗口中:
vs2017编译Lua最新源码,生成动态链接库版本
参考:
lua.exe调用c++.dll错误提示:multiple Lua VMs detected

在windows系统用visual studio 2017生成Lua解释器、编译器、动态链接库dll、静态链接库lib

使用VS2015搭建Lua开发环境