LUA环境来说很新,所以希望我只是错过了一些非常小的东西。我一直在尝试使用LuaRocks和MinGW编译LuaFileSystem。最终编译后,我正在尝试使用 DLL 加载 DLL
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。知道我做错了什么吗?
所以事实证明,我没有意识到 Eclipse 的 LDT 包含一个基于 jnLua 的 Lua 嵌入式版本。使用LuaRocks,我针对LuaRocks包含的版本进行了编译,该版本更像是香草Lua。
我确信有一种方法可以通过将LuaRocks设置为使用jnLua解释器来解决此问题,但更快的方法是将LuaRocks包含的版本添加为Eclipse中使用的解释器。
在首选项的 Lua-> 解释器中,添加新的解释器。对于刚刚导航到包含的LuaRocks Lua解释器(lua5.1.exe)的可执行文件。一旦我更新了我的运行配置文件以使用这个新的解释器,它工作正常。