前提・実現したいこと
https://github.com/brimworks/lua-zlib
lua-zlibをWindowsで使いたいです。
luarocks を利用してインストールすると以下のエラーが出ます。
発生している問題・エラーメッセージ
$ luarocks install 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
試したこと
ソースコードをダウンロードし、luarocksで実行してみる
- 以下コマンドを実行する
$ git clone https://github.com/brimworks/lua-zlib $ cd lua-zlib
- 以下の「zlibを配置する」「luaを配置する」「zlibをビルドして静的ライブラリを使用する」を実行する
- luarocksを実行する
実行結果
$ luarocks install lua-zlib-1.2-0.rockspec lua-zlib 1.2-0 depends on lua >= 5.1, <= 5.3 (5.3-1 provided by VM) mingw32-gcc -O2 -c -o lua_zlib.o -Ic:/external/include lua_zlib.c -DLZLIB_COMPAT -DZLIB_STATIC -Ic:/external/include mingw32-gcc -shared -o zlib.dll lua_zlib.o -lc:/external/zlibstatic c:/external/lua53.lib -lm c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lc:/external/zlibstatic collect2.exe: error: ld returned 1 exit status Error: Build error: Failed compiling module zlib.dll
zlibを配置する
- zlib.net からzlibのソースコードをダウンロード
- 以下の通りファイルをコピーする
c:\external\include\zlib.h
c:\external\include\zconf.h
luaを配置する
- SourceForgeからビルド済み静的リンク用ライブラリをダウンロードする
- 以下の通りファイルをコピーする
c:\external\include\lauxlib.h
c:\external\include\lua.h
c:\external\include\lua.hpp
c:\external\include\luaconf.h
c:\external\include\lualib.h
c:\external\lua53.lib
zlibをビルドして静的ライブラリを使用する
参考
https://github.com/brimworks/lua-zlib/issues/42
- lua-zlib-1.2-0.rockspecを編集する
defines = { "LZLIB_COMPAT" }, を defines = { "LZLIB_COMPAT", "ZLIB_STATIC" }, に変更
$(ZLIB_LIBDIR)/zlib を $(ZLIB_LIBDIR)/zlibstatic に変更
- zlibをダウンロードし、展開する
https://zlib.net/zlib-1.2.11.tar.gz
- CMake GUIを利用してVisualStudioでビルドする環境を作る
4. zlibの静的リンクライブラリをビルドする
5. ビルドしたファイルを以下の通りファイルをコピーする
c:\external\zlib.dll
c:\external\zlib.exp
c:\external\zlib.lib
c:\external\zlibstatic.lib
※念の為、動的ライブラリも配置しています
補足情報(FW/ツールのバージョンなど)
- MinGW
- luarocks 3.3.1
- CMake 3.17.3
参考
あなたの回答
tips
プレビュー