mieki256's diary



2022/10/27(木) [n年前の日記]

#1 [lua] Windows版のluarocksについて調べてる

プログラミング言語のLua言語には、インターネット経由でライブラリをインストールできる luarocks というツールがある。その luarocks を Windows上でインストールする方法がちょっとよく分からなくなってきたので調べているところ。

環境はWindows10 x64 21H2。

以前は、hererocks (HereRocks)というツールを使うことで、Windows上でも Lua + luarocks をビルドして、簡単にインストールできていたっぽい…。

_mieki256's diary - luarocksをWindows10上で使おうとしてハマった

hererocks は、Python上で動作するツール。他に、git と gcc (MinGW)が必要になる。
> python -VV
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)]

> git --version
git version 2.30.2.windows.1

> gcc --version
gcc (MinGW.org GCC Build-2) 9.2.0

とりあえず、以下の環境で hererocks が使えることは確認できた。
hererocks のインストールの仕方や使い方は、以下を参考に。

_luarocks/hererocks: Python script for installing Lua/LuaJIT and LuaRocks into a local directory
_Windows環境にluarocksをインストールするにはhererocksが便利 | Birth, Gaming, Gaming, Death
_HereRocksなるものがあるらしい - Qiita

ただ、ビルドした luarocks を使って、Luaのスクリプトソースの整合性をチェックする luacheck をインストールしてみたものの、MinGW を有効にしてある状態じゃないと luacheck が動作しない…。
> luacheck hello.lua
C:\tools\lua_alt\lua51\bin\lua.exe: error loading module 'lfs' from file 'c:\tools\lua_alt\lua51\/lib/lua/5.1/lfs.dll':
        指定されたモジュールが見つかりません。

stack traceback:
        [C]: ?
        [C]: in function 'require'
        ...:\tools\lua_alt\lua51\/share/lua/5.1/luacheck\fs.lua:3: in main chunk
        [C]: in function 'require'
        ...ools\lua_alt\lua51\/share/lua/5.1/luacheck\cache.lua:1: in main chunk
        [C]: in function 'require'
        ...tools\lua_alt\lua51\/share/lua/5.1/luacheck\main.lua:2: in main chunk
        [C]: in function 'require'
        ...lib\luarocks\rocks-5.1\luacheck\1.0.0-1\bin\luacheck:2: in main chunk
        [C]: ?

lfs.dll とやらが見つからないか、もしくは見つかっても動作しないようだなと。

MinGW が有効なら動作する。
> mingw
MinGW enable. Add path [D:\MinGW\bin;D:\MinGW\\msys\1.0\bin]

> luacheck hello.lua
Checking hello.lua                                OK

Total: 0 warnings / 0 errors in 1 file

2022/10/28追記。 :

lfs.dll を、Dependencies x64 1.11.1.0 に読み込んで調べてみたところ、libgcc_s_dw2-1.dll が見つからなくて動かなかった模様。

_lucasg/Dependencies: A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.

この Dependencies というツールを使えば、.exe や .dll が要求するファイルを確認することができる。

lfs.dll と libgcc_s_dw2-1.dll を、lua.exe が置いてあるディレクトリにコピーしたところ、MinGW を有効にしてない状態でも luacheck が動くようになった。

ちなみに、それぞれ、以下のディレクトリに入ってた。
  • Lua51インストールディレクトリ\lib\lua\5.1\lfs.dll
  • MinGWインストールディレクトリ\bin\libgcc_s_dw2-1.dll

以上、1 日分です。

過去ログ表示

Prev - 2022/10 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project