0

LUA 环境非常新,所以希望我只是错过了一些非常小的东西。我一直在尝试使用 LuaRocks 和 MinGW 编译 LuaFileSystem。最终编译后,我正在尝试使用

require("lfs")

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

我不断收到这个错误

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。任何想法我做错了什么?

4

1 回答 1

0

事实证明,我没有意识到 Eclipse 的 LDT 包含基于 jnLua 的嵌入式 Lua 版本。使用 LuaRocks,我使用 LuaRocks 对包含的版本进行编译,这是更香草的 lua。

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

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

于 2016-02-12T00:56:15.350 回答