在Ubuntu上使用LuaInterface时出错。

我在Mono、Ubuntu上使用LuaInterface时遇到了一些问题。我按照这里的说明进行了操作,但当我尝试在Mono中编译和运行程序时,我遇到了以下错误:

代码:

using System;
using LuaInterface;

public class TestLua {

public static void Main(string[] args) {
    Lua lua= new Lua();  // will open all the standard Lua libraries
}

}

错误:

Unhandled Exception: System.DllNotFoundException: luanet.so
  at (wrapper managed-to-native) LuaInterface.LuaDLL:lua_pushstdcallcfunction     (intptr,LuaInterface.LuaCSFunction)
  at LuaInterface.ObjectTranslator.createBaseClassMetatable (IntPtr luaState) [0x00000] in <filename unknown>:0
  at LuaInterface.ObjectTranslator..ctor (LuaInterface.Lua interpreter, IntPtr luaState) [0x00000] in <filename unknown>:0
  at LuaInterface.Lua..ctor () [0x00000] in <filename unknown>:0
  at TestLua.Main (System.String[] args) [0x00000] in /home/zbynek/Plocha/csharp/Game/Lua/LuaProject/Program.cs:7
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: luanet.so
  at (wrapper managed-to-native) LuaInterface.LuaDLL:lua_pushstdcallcfunction (intptr,LuaInterface.LuaCSFunction)
  at LuaInterface.ObjectTranslator.createBaseClassMetatable (IntPtr luaState) [0x00000] in <filename unknown>:0
  at LuaInterface.ObjectTranslator..ctor (LuaInterface.Lua interpreter, IntPtr luaState) [0x00000] in <filename unknown>:0
  at LuaInterface.Lua..ctor () [0x00000] in <filename unknown>:0
  at TestLua.Main (System.String[] args) [0x00000] in /home/zbynek/Plocha/csharp/Game/Lua/LuaProject/Program.cs:7

这是一个奇怪的错误。如果找不到.dll文件,我可以理解,但是.so呢?

有没有人有什么办法修复这个问题?

谢谢 Zbynek

点赞
用户869951
用户869951

相关于此:

它必须使用对 LuaInterface.dll 的引用进行编译,并且库路径上必须都能访问到luanet.so 和 liblua5.1.so。

LuaInterface 已经找到,所以您有这个引用,但很可能在 LIB_PATH 中没有一个项目是包含 luanet.so 的文件夹。

您可以尝试在 .cs 文件中打印 LD_LIBRARY_PATH(注释掉使用 LuaInterface),以检查其是否已设置:

using System;

...

String libPath = Environment.GetEnvironmentVariable("LD_LIBRARY_PATH");
Console.WriteLine("LD_LIBRARY_PATH:   " + libPath);

确保 .so 文件的权限正确(例如,如果它们是 root,而您是普通用户,则可能无法加载)。

确保找到的 LuaInterface.dll 是 $LUAI 中的文件,而不是其他文件。

还可以查看 Mono shared library under linux location

2013-12-18 20:14:53