【问题标题】:"require" doesn't work with another directory, but the path is correct“require”不适用于其他目录,但路径正确
【发布时间】:2026-01-19 11:50:01
【问题描述】:
a = ";E:\\Code\\Lua\\FakeMagic\\testingarea\\test\\libs\\?.dll"
package.path = package.path .. a
midi = require "luamidi"

我明白了:

E:\Soft\lua\5.1\lua.exe: error loading module 'luamidi' from file 'E:\Code\Lua\FakeMagic\testingarea\test\libs\luamidi.dll':
        E:\Code\Lua\FakeMagic\testingarea\test\libs\luamidi.dll:1: '=' expected near 'Р'
stack traceback:
        [C]: ?
        [C]: in function 'require'
        E:\Code\Lua\FakeMagic\testingarea\test\midi.lua:2: in main chunk
        [C]: ?

但是当luamidi.dll和lua文件在同一目录下时一切正常。
P.S 路径是正确的。

【问题讨论】:

  • 使用package.cpath 加载共享库。见manual
  • 另外,this answer 可能会有所帮助。
  • @Adam 是的,这是工作。

标签: lua directory require


【解决方案1】:

Lua 的 DLL/SO 文件的路径列表不同于 .lua 脚本的路径列表。 DLL/SO 路径列表存储在package.cpath

【讨论】:

    最近更新 更多