luarocks 的基本使用

潼关路边的一只野鬼發表於2024-06-01

參考資料

LuaRocks 官網: https://luarocks.org/

Lua 包管理 – Luarocks 使用指南: https://www.codenong.com/cs110780708/

Windows平臺lua包管理工具luarocks的安裝: https://www.bilibili.com/read/cv26687230/

Linux 環境搭建

安裝

wget https://luarocks.org/releases/luarocks-3.11.0.tar.gz
tar zxpf luarocks-3.11.0.tar.gz
cd luarocks-3.11.0
./configure && make && sudo make install

lua 標頭檔案配置

laolang@laolang-mint:lua542$ pwd
/home/laolang/program/lua/lua542
laolang@laolang-mint:lua542$ tree
.
├── include
│   └── lua
│       └── 5.4
│           ├── lua.h
            ... 從原始碼包複製即可
├── lua54
└── luac54

3 directories, 29 files
laolang@laolang-mint:lua542$ 

測試

安裝依賴

正常來說, 需要 lua 庫, 不過我並沒有下載, luarocks 命令檢測動態庫也是沒有找到的狀態, 不過確實安裝成功了, 也可以正常使用

luarocks install --tree=rocks luasocket
luarocks install --tree=rocks lualogging

程式碼

package.path = package.path .. ";./rocks/share/lua/5.4/?.lua"
require("logging")

if #arg > 0 then
    if arg[1] ~= nil and arg[1] == "on" then
        local dbg = require("emmy_core")
        dbg.tcpListen("localhost", 9966)
        dbg.waitIDE()
    end
end

local Logging = require "logging"

local appender = function(self, level, message)
    print(level, message)
    return true
end

local logger = Logging.new(appender)
logger:setLevel(logger.INFO)
logger:info("Hello Lua")

效果

laolang@laolang-mint:lua-hello$ lua54 main.lua 
INFO	Hello Lua
laolang@laolang-mint:lua-hello$ 

Windows 環境搭建

安裝

lualuarocks 的可執行檔案, 動態庫等全部放在同一個目錄, 然後根據 luarocks 的檢測結果配置標頭檔案與庫檔案目錄

lua windows 庫檔案下載地址

https://sourceforge.net/projects/luabinaries/files/5.4.2/Windows%20Libraries/Static/

檢測

注意: 需要使用 visual studio 的命令列

image

E:\code\lua\lua-hello>luarocks

Configuration:
   Lua:
      Version    : 5.4
      LUA        : D:\program\lua\lua542\bin\lua54.exe (ok) 看這三行
      LUA_INCDIR : D:\program\lua\lua542\bin/include (ok) 看這三行
      LUA_LIBDIR : D:/program/lua/lua542/bin (ok) 看這三行

   Configuration files:
      System  : C:\Program Files\luarocks\config-5.4.lua (not found)
      User    : C:\Users\laolang\AppData\Roaming\luarocks\config-5.4.lua (ok)

   Rocks trees in use:
      C:\Users\laolang\AppData\Roaming\luarocks ("user")


E:\code\lua\lua-hello>

測試

與 Linux 並無不同