【Lua】Windows下编译Lua引擎

【Lua】Windows下编译Lua引擎

  • 编译准备
    • 下载源码
    • 编写批处理脚本
  • 开始编译
    • 打开VS开发人员命令提示符
    • 执行批处理脚本
  • 结果

编译准备

下载源码

首先从官网上下载Lua 5.3.5的源代码到本地,并解压到合适的位置,我的目录结构如下:

D:\DEVELOPMENT\TOOLS\LUA
+---5.3.5
|   |   Makefile
|   |   README
|   |
|   +---doc
|   |       contents.html
|   |       index.css
|   |       logo.gif
|   |       lua.1
|   |       lua.css
|   |       luac.1
|   |       manual.css
|   |       manual.html
|   |       osi-certified-72x60.png
|   |       readme.html
|   |
|   \---src
|           *.c
|           *.h
|           *.hpp
|           Makefile

编写批处理脚本

install.bat

REM open `Developer Command Prompt For Visual Studio`
REM install.bat 5.3.5

%~d0
cd /d %~dp0%1\src

cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c
ren lua.obj lua.o
ren luac.obj luac.o
link /DLL /IMPLIB:lua%1.lib /OUT:lua%1.dll *.obj
link /OUT:lua.exe lua.o lua%1.lib
lib /OUT:lua%1-static.lib *.obj
link /OUT:luac.exe luac.o lua%1-static.lib

del *.obj
del *.o
if exist ..\bin (
    rd /s /q ..\bin
)
mkdir ..\bin
move *.exp ..\bin
move *.lib ..\bin
move *.dll ..\bin
move *.exe ..\bin

cd /d %~dp0

PAUSE

将install.bat文件置于5.3.5同级目录

开始编译

打开VS开发人员命令提示符

我安装了VS2019,所以我的机器上有一下的VS命令提示符程序:
【Lua】Windows下编译Lua引擎_第1张图片
根据个人要求选择其中一个打开即可(我选择x64那个吧)

执行批处理脚本

在install.bat统计目录编写另一个批处理文件install5.3.5.bat,内容简单一句即可:

%~dp0install.bat 5.3.5

将该文件拖到刚打开的命令提示符程序中,如下图:
【Lua】Windows下编译Lua引擎_第2张图片
Fire!
正常输出如下:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>D:\Development\Tools\Lua\install5.3.5.bat

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>D:\Development\Tools\Lua\install.bat 5.3.5

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>REM open `Developer Command Prompt For Visual Studio`

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>REM install.bat 5.3.5

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>D:

D:\>cd /d D:\Development\Tools\Lua\5.3.5\src

D:\Development\Tools\Lua\5.3.5\src>cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.22.27905 版
版权所有(C) Microsoft Corporation。保留所有权利。

lapi.c
lauxlib.c
lbaselib.c
lbitlib.c
lcode.c
lcorolib.c
lctype.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
正在生成代码...
正在编译...
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lua.c
luac.c
lundump.c
lutf8lib.c
lvm.c
lzio.c
正在生成代码...

D:\Development\Tools\Lua\5.3.5\src>ren lua.obj lua.o

D:\Development\Tools\Lua\5.3.5\src>ren luac.obj luac.o

D:\Development\Tools\Lua\5.3.5\src>link /DLL /IMPLIB:lua5.3.5.lib /OUT:lua5.3.5.dll *.obj
Microsoft (R) Incremental Linker Version 14.22.27905.0
Copyright (C) Microsoft Corporation.  All rights reserved.

  正在创建库 lua5.3.5.lib 和对象 lua5.3.5.exp

D:\Development\Tools\Lua\5.3.5\src>link /OUT:lua.exe lua.o lua5.3.5.lib
Microsoft (R) Incremental Linker Version 14.22.27905.0
Copyright (C) Microsoft Corporation.  All rights reserved.


D:\Development\Tools\Lua\5.3.5\src>lib /OUT:lua5.3.5-static.lib *.obj
Microsoft (R) Library Manager Version 14.22.27905.0
Copyright (C) Microsoft Corporation.  All rights reserved.


D:\Development\Tools\Lua\5.3.5\src>link /OUT:luac.exe luac.o lua5.3.5-static.lib
Microsoft (R) Incremental Linker Version 14.22.27905.0
Copyright (C) Microsoft Corporation.  All rights reserved.

  正在创建库 luac.lib 和对象 luac.exp

D:\Development\Tools\Lua\5.3.5\src>del *.obj

D:\Development\Tools\Lua\5.3.5\src>del *.o

D:\Development\Tools\Lua\5.3.5\src>if exist ..\bin (rd /s /q ..\bin )

D:\Development\Tools\Lua\5.3.5\src>mkdir ..\bin

D:\Development\Tools\Lua\5.3.5\src>move *.exp ..\bin
D:\Development\Tools\Lua\5.3.5\src\lua5.3.5.exp
D:\Development\Tools\Lua\5.3.5\src\luac.exp
移动了         2 个文件。

D:\Development\Tools\Lua\5.3.5\src>move *.lib ..\bin
D:\Development\Tools\Lua\5.3.5\src\lua5.3.5-static.lib
D:\Development\Tools\Lua\5.3.5\src\lua5.3.5.lib
D:\Development\Tools\Lua\5.3.5\src\luac.lib
移动了         3 个文件。

D:\Development\Tools\Lua\5.3.5\src>move *.dll ..\bin
D:\Development\Tools\Lua\5.3.5\src\lua5.3.5.dll
移动了         1 个文件。

D:\Development\Tools\Lua\5.3.5\src>move *.exe ..\bin
D:\Development\Tools\Lua\5.3.5\src\lua.exe
D:\Development\Tools\Lua\5.3.5\src\luac.exe
移动了         2 个文件。

D:\Development\Tools\Lua\5.3.5\src>cd /d D:\Development\Tools\Lua\

D:\Development\Tools\Lua>PAUSE
请按任意键继续. . .

结果

最终目录结构:

文件夹 PATH 列表
卷序列号为 42EB-4399
D:\DEVELOPMENT\TOOLS\LUA
|   install.bat
|   install5.3.5.bat
|
\---5.3.5
    |   Makefile
    |   README
    |
    +---bin
    |       lua.exe
    |       lua5.3.5-static.lib
    |       lua5.3.5.dll
    |       lua5.3.5.exp
    |       lua5.3.5.lib
    |       luac.exe
    |       luac.exp
    |       luac.lib
    |
    +---doc
    |       contents.html
    |       index.css
    |       logo.gif
    |       lua.1
    |       lua.css
    |       luac.1
    |       manual.css
    |       manual.html
    |       osi-certified-72x60.png
    |       readme.html
    |
    \---src
            *.c
            *.h
            *.hpp
            Makefile

可以看到多出了一个bin目录,将该目录放到path环境变量中,打开命令提示符程序,输入:

lua -v

or

luac -v

显示

Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio

即表示成功了!!!

你可能感兴趣的:(Lua)