如何让 Visual Studio 2017 编译器(特别是 cl.exe)与 luarocks 协同工作?

首先,我试图找到为 lua 5.3 制作的 lua rocks 库,因此我找到了 mathx,但我并不知道这个库真正的作用,我只是想测试 luarocks 安装是否正确。一切似乎工作正常,但我现在认为在 Windows 系统中默认情况下它正在寻找 cl.exe,在 Visual Studio 2017 中,在以下位置找到此文件:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe

但是,将此目录设置为路径并不能使我在任何命令提示符中启动“cl”命令。

当我从 Lua 命令提示符安装时:

C:\Users\MYNAMEHERE>luarocks install lmathx Installing luarocks.org/lmathx-20150624-1.src.rock cl /nologo /MD /O2 -c -Folmathx.obj -IC:/lua/include lmathx.c 'cl' 不是内部或外部命令,也不是可运行的程序或批处理文件。

错误:编译对象lmathx.obj失败

当我从 Visual Studio 2017 命令提示符安装时:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>luarocks install lmathx Installing luarocks.org/lmathx-20150624-1.src.rock cl /nologo /MD /O2 -c -Folmathx.obj -IC:/lua/include lmathx.c lmathx.c link -dll -def:mathx.def -out:mathx.dll C:/lua/lua53.dll lmathx.obj Microsoft (R) Incremental Linker Version 14.10.25019.0 版权所有(C) Microsoft Corporation。保留所有权利。

C:\lua\lua53.dll:致命错误 LNK1107: 无效或损坏的文件: 无法在0x430处读取 错误:构建错误:无法编译模块mathx.dll 我认为我的 MacBook 做了类似的事情,但我要再看一天,所以现在先放一边。 我尝试安装的模块是:luarocks.org/modules/ignacio/lmathx

C:\Users\MYNAMEHERE>luarocks install luai Installing luarocks.org/luai-1.0-2.src.rock luai 1.0-2 现已安装在 C:\lua\systree 中 (许可证:MIT/X11) 我成功安装了一个模块:luarocks.org/modules/cschen1205/luai 它在普通 Windows 命令提示符中打印以下输出(输入:luarocks install luai):

C:\Users\MYNAMEHERE>luarocks install luai Installing zluarocks.org/luai-1.0-2.src.rock luai 1.0-2 现已安装在 C:\lua\systree 中 (许可证:MIT/X11) 但我无法获取任何 Lua 代码来测试它,即使在其 GitHub 上也是如此。

总体上,我感到很困惑。无论是无法让 Windows 拾取 Visual Studio 2017 编译器以构建 luarocks 文件(请注意,我已将 C:\MinGW 安装为便携版,其中包含 gcc 的 c 和 c++ 编译器,但已将其设置为路径,如果 vs studio 2017 太新而无法工作,则可以使用它,但如何将默认的 lua rocks 更改为用 mingw gcc 而不是 cl.exe 构建库?)还是我无法找到它是如何安装(推定不是从源代码编译)或者无法找到用于检查是否安装了此类 luarock 的示例代码。

点赞