After a previous post on this topic, this is an update, as several changes have made Lua more Windows friendly; the LuaRocks package manager now is a first-class Windows citizen, and the core network library LuaSocket is available as a working package installable from LuaRocks
Lua itself is pretty barebones, so to make it usefull, you’ll be needing additional libraries. The libraries come in several flavors; pure Lua code, C/C++ code, or binaries (precompiled C/C++ libraries). The pure Lua libraries can be used anyway, but the C libraries tend to mostly be available as source code only, meaning you’d have to compile them. And to do that you need a compiler…
Now if you don’t like compilers and all their complexity, don’t worry. LuaRocks is a package manager for Lua and also works on Windows. Once LuaRocks and the compiler are installed, LuaRocks will deal with all the compiling and building.
This tutorial requires you to know some basics about the command line in Windows, and you must have admin access to the system. That’s all.
What will this tutorial be doing;
- install a compiler (MinGW (and MSYS))
- compile and install Lua
- install LuaRocks
Assuming Windows 7 is used and MinGW is being installed in ‘c:\mingw\’
[ad name=”468×60 Banner”]
Installing the compiler
- Download MinGW. The ‘MinGW-get’ application allows you install MinGW components.
- Start the installer and install the ‘mingw-get’ application (it’s windows caption is “MinGW Installation Manager”)
- When installation completes, click ‘continue’ to select the required MinGW packages
- Select the ‘basic setup’ on the left and select the following packages on the right;
- mingw32-base (Basic MinGW installation)
- mingw-gcc-g++ (The GNU C++ compiler)
- msys-base (A basic MSYS installation)
- Now apply the changes (in menu “Installation”) and exit
As we will later be using the compiler, we need to make sure that the compiler can be found on the system. To do this, its location must be added to the system path. Here’s how;
- right-click ‘my computer’ and select ‘properties’, click ‘advanced system settings’, select tab ‘advanced’, click ‘Environment variables…’
- find the entry ‘PATH’ under ‘system variables’, and add ‘c:\mingw\bin’ (use a semicolon ‘;’ as a separator) to this variable.
We won’t be adding MSYS to the path, as it has some Unix like utilities that might interfere with the Windows tools.
[ad name=”468×60 Banner”]
Installing Lua
- Download Lua source code. For this tutorial we’ll be using ‘lua-5.1.5.tar.gz’, but a 5.2 version should be easy to use as well.
- Create a temporary folder ‘c:\temp\’ and store the downloaded file there. Open it and inside there will be a ‘lua-5.1.5’ folder, extract that folder into ‘c:\temp\lua-5.1.5\’.
Now if your system cannot handle ‘.tar.gz’ files (common on Unix, but not on Windows) you can download 7zip, which is a compression utility that handles this format (and many others like .zip and .rar) very well.
Compiling the Lua core files must be done from the command line. So;
- open the start menu and type ‘cmd’, once ‘cmd.exe’ is found, open it.
Before we can compile it we must temporarily add ‘MSYS’ to our system path to use some of it’s utilities, and we need to move into our Lua directory. To do so type the following commands;
SET PATH=%PATH%;c:\mingw\msys\1.0\bin CD c:\temp\lua-5.1.5
We’re all set to build our Lua installation, so type the following commands (in order; cleanup to make sure we start clean, then compile it using mingw, finally install the resulting binaries);
make clean make mingw make install INSTALL_TOP=c:/temp/lua/5.1 TO_BIN="lua.exe luac.exe lua51.dll"
CRUCIAL in the last line:
- the version numbers 5.1 and 51 appear and must be correct (if using another version than 5.1)
- ‘c:/temp/lua/5.1’ uses FORWARD slashes (a Unix convention)
This should be your result:
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\windows\system32>SET PATH=%PATH%;c:\mingw\msys\1.0\bin C:\windows\system32>CD c:\temp\lua-5.1.5 c:\temp\lua-5.1.5>make clean cd src && make clean make[1]: Entering directory `/c/temp/lua-5.1.5/src' rm -f liblua.a lua luac lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundu mp.o lvm.o lzio.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o lua.o luac.o print.o make[1]: Leaving directory `/c/temp/lua-5.1.5/src' c:\temp\lua-5.1.5>make mingw cd src && make mingw make[1]: Entering directory `/c/temp/lua-5.1.5/src' make "LUA_A=lua51.dll" "LUA_T=lua.exe" \ "AR=gcc -shared -o" "RANLIB=strip --strip-unneeded" \ "MYCFLAGS=-DLUA_BUILD_AS_DLL" "MYLIBS=" "MYLDFLAGS=-s" lua.exe make[2]: Entering directory `/c/temp/lua-5.1.5/src' gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lua.o lua.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lapi.o lapi.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lcode.o lcode.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ldebug.o ldebug.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ldo.o ldo.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ldump.o ldump.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lfunc.o lfunc.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lgc.o lgc.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o llex.o llex.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lmem.o lmem.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lobject.o lobject.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lopcodes.o lopcodes.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lparser.o lparser.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lstate.o lstate.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lstring.o lstring.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ltable.o ltable.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ltm.o ltm.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lundump.o lundump.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lvm.o lvm.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lzio.o lzio.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lauxlib.o lauxlib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lbaselib.o lbaselib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ldblib.o ldblib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o liolib.o liolib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lmathlib.o lmathlib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o loslib.o loslib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o ltablib.o ltablib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lstrlib.o lstrlib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o loadlib.o loadlib.c gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o linit.o linit.c gcc -shared -o lua51.dll lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o # DLL needs all object files strip --strip-unneeded lua51.dll gcc -o lua.exe -s lua.o lua51.dll -lm make[2]: Leaving directory `/c/temp/lua-5.1.5/src' make "LUAC_T=luac.exe" luac.exe make[2]: Entering directory `/c/temp/lua-5.1.5/src' gcc -O2 -Wall -c -o luac.o luac.c gcc -O2 -Wall -c -o print.o print.c ar rcu liblua.a lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o # DLL needs all object files ranlib liblua.a gcc -o luac.exe luac.o print.o liblua.a -lm make[2]: Leaving directory `/c/temp/lua-5.1.5/src' make[1]: Leaving directory `/c/temp/lua-5.1.5/src' c:\temp\lua-5.1.5>make install INSTALL_TOP=c:/temp/lua/5.1 TO_BIN="lua.exe luac.exe lua51.dll" cd src && mkdir -p c:/temp/lua/5.1/bin c:/temp/lua/5.1/include c:/temp/lua/5.1/lib c:/temp/lua/5.1/man/man1 c:/temp/lua/5.1/share/lua/5.1 c:/temp/lua/5.1/lib/lua/5.1 cd src && install -p -m 0755 lua.exe luac.exe lua51.dll c:/temp/lua/5.1/bin cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp c:/temp/lua/5.1/include cd src && install -p -m 0644 liblua.a c:/temp/lua/5.1/lib cd doc && install -p -m 0644 lua.1 luac.1 c:/temp/lua/5.1/man/man1 c:\temp\lua-5.1.5>
Completing the setup
- Now you can close the command window (important, you cannot re-use this instance!)
- Open the ‘c:\temp’ folder in a Windows explorer window and you can move the complete ‘c:\temp\lua’ directory to ‘c:\program files\’ (or ‘c:\program files (x86)’ on 64bit systems)
- Open the ‘PATH’ variable again in the ‘environment variables’ dialog box (see ‘installing the compiler’ above), this time adding the location of ‘lua.exe’ to the system path (that would be ‘c:\program files\lua\5.1\bin’ or include the ‘(x86)’ in case of a 64bit system).
Congratulations, you’ve just compiled and installed Lua! Open a command window and type;
lua -e "print('hello world')"
to test it (if it doesn’t work, make sure to open a new command window, because of the change to the PATH variable)
[ad name=”468×60 Banner”]
Installing LuaRocks
- Download LuaRocks, make sure to download a Windows version, ending with ‘-win32.zip’, and a minimum version 2.1.2.
- Open the downloaded zip file and drag the ‘luarocks-2.x.x-win32’ folder inside to ‘c:\temp\’ to extract the contents to the temporary directory.
- Now open a new command prompt (to make sure our changes to the PATH variable are into effect)
- Move into the luarocks directory (replace x.x with the version you downloaded) with the following command;
CD c:\temp\luarocks-2.x.x-win32
- Install it using the following command (use ‘install /?’ first to get an explanation of the options), but do not click the command window away when it is done! it contains information on paths that need to be set. (NOTE: you might be prompted for administrator credentials)
install /MW /F /LV 5.1
- When done, take note of the paths it lists at the end. It refers to PATH, LUA_PATH and LUA_CPATH, make a print screen, or copy the text from the command window to keep it handy. If you use Lua 5.2 or later you don’t need LUA_PATH and LUA_CPATH, but their 5.2 equivalents LUA_PATH_5_2 and LUA_CPATH_5_2.
- Open the window with the ‘environment variables’ again and add the values given to the variables there (only if they are not there already). LUA_PATH and LUA_CPATH (or _5_2 versions) probably do not exist, so you’ll have to create them. This step is crucial for your Lua installation to work properly, so be carefull to get this right!
For an explanation of the rocks trees and the paths, see http://luarocks.org/en/Rocks_repositories.
Now close all command windows and open a new one and type
luarocks help
to see whether your new LuaRocks installation is found.
Now install some very common, basic libraries to test the LuaRocks-MinGW combination. Install the Lua file system module by typing;
luarocks install luafilesystem
Which should give you something similar to this;
c:\>luarocks install luafilesystem Installing http://luarocks.org/repositories/rocks/luafilesystem-1.6.2-1.src.rock... Using http://luarocks.org/repositories/rocks/luafilesystem-1.6.2-1.src.rock... switching to 'build' mode mingw32-gcc -O2 -c -o src/lfs.o -IC:/Program Files/Lua/5.1/include/ src/lfs.c mingw32-gcc -shared -o lfs.dll src/lfs.o C:/Program Files/Lua/5.1/bin/lua51.dll -lm Updating manifest for C:\ProgramData\LuaRocks//lib/luarocks/rocks luafilesystem 1.6.2-1 is now built and installed in C:\ProgramData\LuaRocks/ c:\>
When completed you can type
lua -l lfs
to test whether Lua can load the compiled library properly (is doesn’t do anything, it should just start Lua and load the library without errors, press <ctrl>+<c> to exit the Lua interpreter). This should be the result;
c:\>lua -l lfs Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio > ^C c:\>
another common one, luasocket, can be installed with;
luarocks install luasocket
When completed you can type
lua -l socket
to test whether Lua can load the compiled library properly.
Congratulations again! you just setup a working package manager. This will allow you to install Lua modules with just a few simple commands, while not having to worry about the technical complexities of the compiler. Obviously only packages intended for Windows can be installed this way, explicit unix packages will not work.
[ad name=”468×60 Banner”]
From here;
available modules can be found in the main LuaRocks repository. The commands to start practicing with are ‘luarocks install <module name>’ and ‘luarocks search <part-of-name>’
The LuaRocks installer registered the ‘.rockspec’ extension with LuaRocks, so you can right-click a .rockspec file and choose the basic LuaRocks commands from the pop-up menu. This comes in handy when installing modules downloaded from the web, which are not in the LuaRocks repository.
The Lua scripts are simple text files, but probably best edited with an IDE. An excellent one is ZeroBrane Studio.
You probably want to associate the `.lua` extension with the Lua interpreter, so you can start scripts by double clicking them. If you use Lua scripts a lot from the command line you might want to add `.LUA` to the PATHEXT environment variable so you can ommit the extension. Eg. type `myscript` instead of `myscript.lua` to execute a Lua script.
Further resources for first time Lua users can be found here. And if you really want to get into Lua, then the book Programming in Lua (or PIL) is a must-have.
If you find any errrors omissions or run into trouble, drop me a message below.
Thank you so much once again for the updated version of how to install Lua on Win! Excellent guide as usual. I was looking for this 🙂
When I try “make mingw”, it says: “The program can’t start because libgmp-10.dll is missing from your computer. Try reinstalling the program to fix this problem.”
I re-installed the program and found out that the .dll file is present in MinGW\bin. Why is it not working?
Thanks.
No expert on MinGW itself, but if it cannot find the dll, then you should be able to resolve it by adding the location of the dll to your system path. For more information check this link.
This is great, thank you.
After installing Lua, a tried to run the command ‘lua -help’ and got this error:
lua: unrecognized option ‘-help’
I can enter the lua interface by simply typing ‘lua’ but I’m worried the install is incomplete because of the -help error. Do have any thoughts on how i can fix this?
My bad, it turns out that `-help` is not a valid option. But in Lua 5.1 invalid options just displayed the help tekst, from 5.2 onwards they print an error for the unknown options and then display the help tekst below that.
So your Lua installation seems to be working just fine, I’ll just have to update the post.
Thx. For the feedback.
This is a brilliant blog! Thank you so much for taking the time to share your knowledge.
I ran into a problem running ‘make mingw’. I’m testing the procedure using Virtual Box before I set it up on my main machine. The error message
as.exe – Entry Point Not Found
The procedure entry point libintl_setlocale could not be located in the dynamic link library libintl-8.dll.
Any ideas what I may be doing wrong?
As a follow-up to my previous comment, I found two copies of the libintl-8.dll. I decided to rename the (older) libintl-8.dll in my Lua\5.1\clibs folder to allow mingw to use the newer one in the MinGW\bin folder and that allowed me to continue on.
Good to see it’s fixed!
This is very clear and helpful – thank you.
I am having a little trouble with luarocks, however. It installs correctly, and I’ve set my path properly, but whenever I run it I get the following error:
lua5.1: cannot open C:\Program Files (x86)\Lua\luarocks.lua: No such file or directory
luarocks.lua is actually located in C:\Program Files (x86)\Lua\5.1, and I didn’t specify any special options when I installed luarocks – this is just a standard installation. Not sure if you or your readers can help me with this but I would greatly appreciate your input.
Sorry for the late reply. The best place for these questions is probably the LuaRocks mailing list, or raising an issue on the GitHub tracker.
When posting there, please include the output of the LuaRocks installer, as it lists all important file locations.
I am running Windows 8 and trying to set up Lua following the instructions here: http://www.thijsschreijer.nl/blog/?p=863
[It’s not relevant, but the the reason I’m doing this in the first place that I can’t get luarocks to work.]
I followed all the instructions to the letter, installing mingw, adding to my path variable, etc.
An error window comes up with the following information:
as.exe – Entry Point Not Found
The procedure entry point libintl_setlocale could not be located in the dynamic link library
c:\mingw\bin\..\lib\gcc\mingw32\4.8.1\..\..\..\..\mingw32\bin\as.exe
Then an error message about “as.exe has stopped working”
on the command line it prints:
c:\temp\lua-5.1.5>make mingw
cd src && make mingw
make[1]: Entering directory `/c/temp/lua-5.1.5/src’
make “LUA_A=lua51.dll” “LUA_T=lua.exe” \
“AR=gcc -shared -o” “RANLIB=strip –strip-unneeded” \
“MYCFLAGS=-DLUA_BUILD_AS_DLL” “MYLIBS=” “MYLDFLAGS=-s” lua.exe
make[2]: Entering directory `/c/temp/lua-5.1.5/src’
gcc -O2 -Wall -DLUA_BUILD_AS_DLL -c -o lua.o lua.c
make[2]: *** [lua.o] Error 1
make[2]: Leaving directory `/c/temp/lua-5.1.5/src’
make[1]: *** [mingw] Error 2
make[1]: Leaving directory `/c/temp/lua-5.1.5/src’
make: *** [mingw] Error 2
I’m totally lost on how to fix this.
UPDATE: I resolved the issue by searching my computer for all files named “libintl-8.dll” and temporarily renaming them. There was another file by the same name in my separate, unrelated “Lua for windows” program files, in the clibs folder. Apparently it interfered somehow.
Excellent Job! Thanks for the step-by-step guide.:)
Pingback: Lua on Windows 10 | Nil writes ...
A Visual Studio 2017 project for building Lua on Windows (10) can be found here:
https://github.com/RussellHaley/PUC-Lua-VisualStudio
The project build Lua 5.3 and LFS and includes all the installer code (Wix and Wix VS toolset are required to build the installer).
Pre-build installers for Window 10 can be found here:
https://github.com/RussellHaley/PUC-Lua-VisualStudio/tree/master/Visual%20Studio/bin
Thank you Thijs for your help on the mailing list to get this working.
I’ll be focusing on getting some binary support for LuaRocks sometime in the near future.
The link above to “PUC-Lua-VisualStudio” is no longer valid. The latest version of WinLua can be found here: https://github.com/WinLua/bin/tree/master/WinLua%20Release%201
Also, it’s no longer necessary to use Cygwin. The Microsoft VC Toolchain can be downloaded without Visual Studio here (only 4 GB instead of like 20 GB!):
https://visualstudio.microsoft.com/downloads/
under “Tools for Visual Studio 2017” -> “Build Tools for Visual Studio 2017”. Which links to:
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15#
One can then build using Thijs’ luawinmake here (I’m surprised you haven’t updated blog post this to reflect LuaWinMake?):
https://github.com/Tieske/luawinmake
I also have a Visual Studio project here:
https://github.com/WinLua/WinLua-VisualStudio
under the Visual Studio folder. (Don’t use Release 2, its a work in progress)
in luarocks installation , install command is not recognized
please provide some more input.
You may want to add the following elements to your paths;
Lua interpreter;
PATH : C:\Program Files (x86)\templua-5.3.5\bin
PATHEXT : .LUA
LuaRocks;
PATH : C:\Program Files (x86)\LuaRocks
LUA_PATH : C:\Program Files (x86)\LuaRocks\lua\?.lua;C:\Program Files (x86)\LuaRocks\lua\?\init.lua
Local user rocktree (Note: %APPDATA% is user dependent);
PATH : %APPDATA%\LuaRocks\bin
LUA_PATH : %APPDATA%\LuaRocks\share\lua\5.3\?.lua;%APPDATA%\LuaRocks\share\lua\5.3\?\init.lua
LUA_CPATH: %APPDATA%\LuaRocks\lib\lua\5.3\?.dll
System rocktree
PATH : c:\program files (x86)\templua-5.3.5\\bin
LUA_PATH : c:\program files (x86)\templua-5.3.5\\share\lua\5.3\?.lua;c:\program files (x86)\templua-5.3.5\\share\lua\5.3\?\init.lua
LUA_CPATH: c:\program files (x86)\templua-5.3.5\\lib\lua\5.3\?.dll
Note that the %APPDATA% element in the paths above is user specific and it MUST be replaced by its actual value.
For the current user that value is: C:\Users\Ravi\AppData\Roaming.
WHICH PATHS SHOULD BE ADDED?
this is after installing LuaRocks. You might want those paths added to make sure all the components are found.
Here’s explained how the paths work: http://www.thijsschreijer.nl/blog/?p=1025
Trying to install LUASQL ODBC. Thank you for the detailed instructions above. They helped me install Lua, MingW and LuaRocks. After I’d followed your instructions, I was able to perform an install on both LUAFILESYSTEM and LUASOCKET with no problems. The trouble is ….. when I try and install LUASQL-ODBC I get the following error message (note the “cannot find -lodbc”)
C:\Program Files (x86)\LuaRocks>luarocks install luasql-odbc
Installing https://luarocks.org/luasql-odbc-2.4.0-1.src.rock
C:\MinGW\bin\gcc.exe -O2 -c -o src/luasql.o -IC:\Program Files (x86)\Lua\5_3\include src/luasql.c -Ic:/mingw/include
C:\MinGW\bin\gcc.exe -O2 -c -o src/ls_odbc.o -IC:\Program Files (x86)\Lua\5_3\include src/ls_odbc.c -Ic:/mingw/include
C:\MinGW\bin\gcc.exe -shared -o luasql/odbc.dll src/luasql.o src/ls_odbc.o -Lc:/mingw -lodbc C:\Program Files (x86)\Lua\5_3\bin/lua53.dll -lm
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: cannot find -lodbc
collect2.exe: error: ld returned 1 exit status
Error: Build error: Failed compiling module luasql/odbc.dll
I’ve downloaded the LUASQL from GITHUB (https://github.com/keplerproject/luasql) as a zip file. I noticed that both socket and filesystem “existed” in a directory with the same name as the program version. For example, the filesystem code was in directory 1.7.0-2, so I created a directory for the ODBC code called odbc-2.4.0-1 (since my required rockspec installation (?) was called luasql-odbc-2.4.0-1.rockspec).
I have added the paths
LUA_CPATH_5_2 C:\Program Files (x86)\Lua\5_3\\lib\lua\5.3\?.dll
LUA_PATH_5_2 C:\program files (x86)\lua\5_3\\share\lua\5.3\?.lua;C:\program files (x86)\lua\5_3\\share\lua\5.3\?\init.lua
I’m obviously (?) doing something trivially stupid and wrong, but for the life of me, don’t know what. (FYI, I’m a mainframe COBOL programmer and am tring to install LUA with ODBC so I can test using LUA under IBM’s OPTIM s/w)
Thank you
Have you ever tried installing luasql-odbc on a Windows PC.
I’ve installed LUA, LUAROCKS, socket and the filesystem based on your instructions above (many thanks for them), but when I try to install luasql-odbc I get an error
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: cannot find -lodbc