How to compile Lua 5.3.0 for Windows
This is a tutorial on how to compile Lua 5.3.0 for Windows (executable and DLL) with Microsoft Visual Studio Express.
1. download and install Visual Studio 2010 Express (Windows 7) or Visual Studio 2012 Express (Windows 8) – do not use any older/newer version (haven’t tested them)
2. download and extract the Lua 5.3.0 source code
3. open a Visual Studio Command prompt, navigate to the extracted Lua src\ folder and run inside this folder the following commands
|
1 2 3 4 5 6 7 8 9 |
cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c ren lua.obj lua.o ren luac.obj luac.o link /DLL /IMPLIB:lua5.3.0.lib /OUT:lua5.3.0.dll *.obj link /OUT:lua.exe lua.o lua5.3.0.lib lib /OUT:lua5.3.0-static.lib *.obj link /OUT:luac.exe luac.o lua5.3.0-static.lib |
You’re done! You should now have a lua.exe interpreter, a luac.exe compiler and a lua5.3.0.dll.
21 Comments to How to compile Lua 5.3.0 for Windows
What about sharing the compiled binaries to avoid downloading a 600 MB compiler suite from Microsoft ?
February 3, 2015
here you go lua5.3.0.zip
If you’d compile it by yourself, you would be able to adjust some settings (luaconf.h) by your needs.
February 4, 2015
x86 and x64 Microsoft Visual Studio 2012 Express Compile
http://1drv.ms/1DEAkLw
and Thanks for compile tip Dennis.
February 5, 2015
Thank you sir! I am very glad to have found your tutorial.
December 9, 2015
[…] 參考自 How to compile Lua 5.3.0 for Windows P.S. 這篇文章是參考自 Youtube […]
January 5, 2016
Awesome! I was looking for something like this!
February 5, 2016
March 21, 2016
Thank you, safe me many hours
April 24, 2016
The build script you posted didn’t work properly for me. There were build errors and it didn’t output a DLL. I modified it so it works, and compiles much faster:
del *.obj *.dll *.lib *.o *.exp
cl -MP -MD -O2 -c -DLUA_BUILD_AS_DLL *.c
ren luac.obj luac.o
link -subsystem:console -dll -implib:lua53.lib -out:lua53.dll *.obj
link -out:lua.exe lua.obj lua53.lib
lib -out:lua53-static.lib *.obj
link -out:luac.exe luac.o lua53-static.lib
April 27, 2016
Can someone tell me how I compile the interpreter and the dll for x64?
July 3, 2016
[…] Anleitung: von Dennis D. Spreen, diese bezieht sich auf Visual Studio 2010/2012 aber es sollte auch mit der aktuellen VS Version […]
Hi lamonese,
I build 64-bit Lua with VS2014/15 (win10). You find the hints (written in german) here:
* how to prepare VS : https://lua64bit.wordpress.com/2016/07/03/wie-erstelle-ich-mit-vs-ein-64-bit-modul/
* build 64-bit lua: https://lua64bit.wordpress.com/2016/07/03/selfmade-lua/
To keep with Lua’s dynamic nature Ravi uses a mix of compile type checking and runtime type checks. However due to the dynamic nature of Lua, compilation happens at runtime anyway so effectually all checks are at runtime.
August 16, 2016
ummm VG… i’m concerned about the del command, so im not using your command until i get that error
Hi Dennis,
Thanks for your lua5.3.0.zip compiled package from 2015. Still works like a charm :-).
I’m using it with the Atom editor and linter-lua package. Perfect!
Arjan
February 3, 2017
how do i compile wlua for lua 5.3.4 or 5.3.3?
November 1, 2017
Thank you so much for your help, I just compiled lua with msvc2015 32 bits thanks to you
June 10, 2019
Hello,
I came here by hazard, if someone is interested, this is the Makefile I use to statically link Lua with MSVC (embedded usage).
[…] posts How to compile Lua 5.3.0 for Windows How to compile Lua 5.3.0 as a Mac OS X dynamic library How to compile Lua 5.3.0 for Android as a […]
June 25, 2019
@Vlad: Thank you!
March 29, 2020
[…] cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c ren lua.obj lua.o ren luac.obj luac.o link /DLL /IMPLIB:lua5.3.0.lib /OUT:lua5.3.0.dll *.obj link /OUT:lua.exe lua.o lua5.3.0.lib lib /OUT:lua5.3.0-static.lib *.obj link /OUT:luac.exe luac.o lua5.3.0-static.lib – from https://blog.spreendigital.de/2015/01/16/how-to-compile-lua-5-3-0-for-windows/ […]
Leave a comment
About Dennis D. Spreen
Search
Recent Posts
- How to compile Lua 5.4.0 for Android as a dynamic library using Android Studio 4
- Please make inline vars usable for production – fix RSP-28892
- How to compile Lua 5.4.0 as a Mac OS X dynamic library
- How to compile Lua 5.4.0 for Linux as a shared library
- How to compile Lua 5.4.0 for Windows
- Daily Wage – a Spigot/Bukkit plugin that pays out a daily wage
- How to compile Lua 5.3.5 for Windows
- Better Collada exporter for Blender with custom properties
- MOS6502-delphi – a MOS 6502 CPU emulator for Delphi
- Pass a multidimensional array as a parameter (with a hidden caveat)
Categories
Tags
Archives
- May 2020
- March 2020
- June 2019
- March 2017
- August 2016
- July 2016
- June 2016
- January 2016
- September 2015
- February 2015
- January 2015
- October 2014
- September 2014
- August 2014
- May 2014
- March 2014
- February 2014
- November 2011
- June 2011
- February 2011
- March 2010
- September 2009
- August 2009
- July 2009
- May 2009
- March 2009
- February 2009
- January 2009
- November 2008
- October 2008
- February 2008
- June 2007
Delphi Feeds
- Working with JS events February 21, 2026
- AmiTube Server update February 20, 2026
- Meet Danny Wind at TMS Training Days 2026 February 20, 2026
- Effective Threat Modeling for Software Applications February 19, 2026
- Lifecycle Accountability: Designing Software for Long-Term Resilience February 19, 2026
- Inspecting the internals of GExperts while it is running in the IDE February 19, 2026
- February 19, 2026
- WebStencils and HTMX Guide v2: Now Updated for RAD Studio 13 February 18, 2026
- SQL Server - How to capture database errors February 18, 2026
- Meet Wagner Landgraf at TMS Training Days 2026 February 18, 2026



February 3, 2015