一、去官网下载lua5.3.5源码包

http://www.lua.org/ftp/

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码

点击download可以看到历时版本:

https://www.lua.org/ftp/

lua源文件打开后是乱码 lua文件在哪_lua_02

这里可以看到需要的版本,点击下载。

二、建立VS工程

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_03

点击确定

lua源文件打开后是乱码 lua文件在哪_源码包_04

这里根据需要选择x64,还是x86。下面以Release版本为例(Debug版本的编译过程也基本相同的)三、解压lua源码包

将下载的lua源码包解压出来,我这里解压到了E盘根目录,以此路径为例:

lua源文件打开后是乱码 lua文件在哪_源码包_05

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_06

E:\lua-5.3.5\src 这个路径就是我们全部的lua源文件了。四、编译过程

1.生成lua动态链接库(dll)

lua源文件打开后是乱码 lua文件在哪_源码包_07

解决方案-> 右键 -> 添加 -> 新建项目 -> 项目名称为lua

lua源文件打开后是乱码 lua文件在哪_lua_08

将项目设置成Release版,x64位,以下均以编译Release版为例(如果需要编译Debug版也是一样的编译过程)

将lua设置为启动项目:

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_09

将lua源码文件夹中,除lua.c和luac.c文件外的其余全部源码文件添加到lua工程中

lua源文件打开后是乱码 lua文件在哪_lua_10

lua源文件打开后是乱码 lua文件在哪_lua_11

设置为dll动态库

lua源文件打开后是乱码 lua文件在哪_lua_12

在“C/C++” -> “预处理器” -> “预处理器定义” 中添加LUA_BUILD_AS_DLL,添加完后要记得点击保存。

lua源文件打开后是乱码 lua文件在哪_动态库_13

设置完后,就可以编译。

生成lua.lib和lua.dll

lua源文件打开后是乱码 lua文件在哪_lua_14

新建一个build目录,将生成的这两个文件进去,如图所示:

lua源文件打开后是乱码 lua文件在哪_动态库_15

2.生成luac.exe

直接在解决方案上右键->添加->新建项目,项目名为luac

lua源文件打开后是乱码 lua文件在哪_动态库_16

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_17

将lua源码包中src目录中的除lua.c外的所有文件添加进去:

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_18

检查一下设置:

lua源文件打开后是乱码 lua文件在哪_动态库_19

添加刚才生成的lua.lib:

首先是添加路径:

lua源文件打开后是乱码 lua文件在哪_lua_20

添加lua.lib

lua源文件打开后是乱码 lua文件在哪_lua_21

将luac项目设置为启动项目,然后编译:

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_22

3.生成lua.exe

将刚才的lua5.3.5项目设置为启动项目,这一步对后面的windows上调用C语言库至关重要。这里要生成的lua.exe是动态库版本的,这一步需要连接的是第一步中生成的lua.lib。具体过程如下:

添加除lua源码包src目录中的所有头文件和lua.c文件,其余.c文件一个也不要:

lua源文件打开后是乱码 lua文件在哪_源码包_23

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_24

lua源文件打开后是乱码 lua文件在哪_lua_25

lua源文件打开后是乱码 lua文件在哪_lua_26

编译生成:

lua源文件打开后是乱码 lua文件在哪_lua源文件打开后是乱码_27

现在将上面生成的文件都复制到一个文件夹中:

lua源文件打开后是乱码 lua文件在哪_源码包_28

留意lua5.3.5.exe的大小,这个是动态库版本,所以它只有18KB,把生成的全部文件放一起,重命名(为了好看一些):

lua源文件打开后是乱码 lua文件在哪_源码包_29

至此已经全部生成完毕。

可以将这个源码路径复制到自己的某个路径下使用了。

例如,我将这个目录整个复制到了D盘的D:\Program Files目录下。

lua源文件打开后是乱码 lua文件在哪_动态库_30

那么我就将lua.exe所在的路径添加到环境变量中。在cmd窗口中:

lua源文件打开后是乱码 lua文件在哪_lua_31

参考:

lua.exe调用c++.dll错误提示:multiple Lua VMs detected

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

使用VS2015搭建Lua开发环境