如何在 Windows 上使用 LuaRocks 安装 lua-zlib?
How to install lua-zlib with LuaRocks on Windows?
我在 Linux 环境中使用 Lua 编写了一个程序,它使用 Lua 模块 ZipWriter
及其依赖项(lua-zlib
和 struct
)。我也在尝试发布到 Windows,但我在构建 lua-zlib
.
时遇到了问题
我正在使用 LuaRocks 使用标准命令安装所有其他软件包。所以,为了安装 lua-zlib
,我只使用了 > luarocks install lua-zlib
,当然它不会起作用,因为 zlib
本身没有安装,而 lua-zlib
是对那个图书馆。
Installing https://luarocks.org/lua-zlib-1.2-0.src.rock
Error: Could not find header file for ZLIB
No file zlib.h in c:/external/include
No file zlib.h in c:/mingw/include
No file zlib.h in c:/windows/system32/include
You may have to install ZLIB in your system and/or pass ZLIB_DIR or ZLIB_INCDIR to the luarocks command.
Example: luarocks install lua-zlib ZLIB_DIR=/usr/local
因此,我在该页面中找到了 a link,用于 Windows 的 zlib
的不同下载。我下载了 "Complete package, except sources" 和 "Sources" 安装程序,安装了它们,它们在目录 C:\Program Files (x86)\GnuWin32
下创建了文件夹和文件,所有这些都与 zlib
相关。我按照该错误日志提供的示例再次尝试 运行 luarocks
:
> luarocks install lua-zlib ZLIB_DIR="C:\Program Files (x86)\GnuWin32"
但又出现另一个错误:
Installing https://luarocks.org/lua-zlib-1.2-0.src.rock
mingw32-gcc -O2 -c -o lua_zlib.o -IC:\lua\luajit lua_zlib.c -DLZLIB_COMPAT -IC:\Program Files (x86)\GnuWin32/include
mingw32-gcc -shared -o zlib.dll lua_zlib.o -lC:\Program Files (x86)\GnuWin32/zlib C:\lua\luajit/lua51.dll -lMSVCRT
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: cannot find -lC:\Program Files (x86)\GnuWin32/zlib
collect2.exe: error: ld returned 1 exit status
Error: Build error: Failed compiling module zlib.dll
确实,C:\Program Files (x86)\GnuWin32/zlib
中没有 file/directory,如错误所示。由于某种原因,没有安装。我错过了什么?
注意:如错误日志所示,我有 mingw32-gcc
作为编译器,以防它有用。
使用静态 zlib 应该可以。为此,您可以在 Github 上关注此 guide。基本上,你需要
已安装功能性 zlib 库
从 https://zlib.net 下载,使用 cmake
生成 Visual Studio 解决方案(例如在 c:\lib\zlib)
cmake .. -DCMAKE_INSTALL_PREFIX=c:\lib\zlib
然后使用 VS 中的 'Release' 构建类型从生成的解决方案构建 INSTALL 项目。
下载 luarock lua-zlib:
mkdir c:\lib\lua-zlib
c:
cd \lib\lua-zlib
luarocks download lua-zlib
编辑您的 lua-zlib*.rockspec 文件(例如在 c:\lib\lua-zlib 中),
添加 , "ZLIB_STATIC"
到 build.modules.zlib.defines
,
从 "$(ZLIB_LIBDIR)/zlib"
更改 platform.windows.modules.zlib.libraries
至 "$(ZLIB_LIBDIR)/zlibstatic"
从本地源安装 luarock(更改文件名以匹配现有文件名):
cd c:\lib\lua-zlib
luarocks install lua-zlib*.rockspec
我在 Linux 环境中使用 Lua 编写了一个程序,它使用 Lua 模块 ZipWriter
及其依赖项(lua-zlib
和 struct
)。我也在尝试发布到 Windows,但我在构建 lua-zlib
.
我正在使用 LuaRocks 使用标准命令安装所有其他软件包。所以,为了安装 lua-zlib
,我只使用了 > luarocks install lua-zlib
,当然它不会起作用,因为 zlib
本身没有安装,而 lua-zlib
是对那个图书馆。
Installing https://luarocks.org/lua-zlib-1.2-0.src.rock
Error: Could not find header file for ZLIB
No file zlib.h in c:/external/include
No file zlib.h in c:/mingw/include
No file zlib.h in c:/windows/system32/include
You may have to install ZLIB in your system and/or pass ZLIB_DIR or ZLIB_INCDIR to the luarocks command.
Example: luarocks install lua-zlib ZLIB_DIR=/usr/local
因此,我在该页面中找到了 a link,用于 Windows 的 zlib
的不同下载。我下载了 "Complete package, except sources" 和 "Sources" 安装程序,安装了它们,它们在目录 C:\Program Files (x86)\GnuWin32
下创建了文件夹和文件,所有这些都与 zlib
相关。我按照该错误日志提供的示例再次尝试 运行 luarocks
:
> luarocks install lua-zlib ZLIB_DIR="C:\Program Files (x86)\GnuWin32"
但又出现另一个错误:
Installing https://luarocks.org/lua-zlib-1.2-0.src.rock
mingw32-gcc -O2 -c -o lua_zlib.o -IC:\lua\luajit lua_zlib.c -DLZLIB_COMPAT -IC:\Program Files (x86)\GnuWin32/include
mingw32-gcc -shared -o zlib.dll lua_zlib.o -lC:\Program Files (x86)\GnuWin32/zlib C:\lua\luajit/lua51.dll -lMSVCRT
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: cannot find -lC:\Program Files (x86)\GnuWin32/zlib
collect2.exe: error: ld returned 1 exit status
Error: Build error: Failed compiling module zlib.dll
确实,C:\Program Files (x86)\GnuWin32/zlib
中没有 file/directory,如错误所示。由于某种原因,没有安装。我错过了什么?
注意:如错误日志所示,我有 mingw32-gcc
作为编译器,以防它有用。
使用静态 zlib 应该可以。为此,您可以在 Github 上关注此 guide。基本上,你需要
已安装功能性 zlib 库
从 https://zlib.net 下载,使用cmake
生成 Visual Studio 解决方案(例如在 c:\lib\zlib)cmake .. -DCMAKE_INSTALL_PREFIX=c:\lib\zlib
然后使用 VS 中的 'Release' 构建类型从生成的解决方案构建 INSTALL 项目。
下载 luarock lua-zlib:
mkdir c:\lib\lua-zlib c: cd \lib\lua-zlib luarocks download lua-zlib
编辑您的 lua-zlib*.rockspec 文件(例如在 c:\lib\lua-zlib 中), 添加 ,
"ZLIB_STATIC"
到build.modules.zlib.defines
, 从"$(ZLIB_LIBDIR)/zlib"
更改platform.windows.modules.zlib.libraries
至"$(ZLIB_LIBDIR)/zlibstatic"
从本地源安装 luarock(更改文件名以匹配现有文件名):
cd c:\lib\lua-zlib luarocks install lua-zlib*.rockspec