Lua文件系统DLL无效

我对Lua环境还比较陌生,希望我的问题只是个小问题。我一直在尝试使用LuaRocks和MinGW编译LuaFileSystem。在最终编译完成之后,我试图使用

require("lfs")

以及

local f = assert(package.loadlib("lfs.dll","lfs"))
lfs = f()

来加载DLL,但我一直得到以下错误

Exception in thread "main" com.naef.jnlua.LuaRuntimeException: error loading module 'lfs' from file '.\lfs.dll':
    %1 is not a valid Win32 application.

    at com.naef.jnlua.LuaState.lua_pcall(Native Method)
    at com.naef.jnlua.LuaState.call(LuaState.java:555)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)

需要注意的一些事项是,我正在尝试在Eclipse LDT解释器中使用此DLL。该DLL是针对LUA 5.1编译的,而Eclipse正在使用LUA 5.1。有什么想法吗?

点赞
用户1544046
用户1544046

所以事实证明,我没有意识到 Eclipse 中的 LDT 包含基于 jnLua 的嵌入式版本 Lua。使用 LuaRocks,我对包含的更原始的 LuaRocks 版本进行了编译。

我相信有一种方法可以通过设置 LuaRocks 使用 jnLua 解释器来解决这个问题,但更快速的方法是将 LuaRocks 包含的版本作为 Eclipse 中使用的解释器添加进去。

在“首选项”->“Lua”->“解释器”中添加一个新的解释器。对于可执行文件,只需导航到包含的 LuaRocks Lua 解释器(lua5.1.exe)即可。一旦我更新了我的运行配置文件以使用这个新的解释器,它就可以正常工作了。

2016-02-12 00:56:15