作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我尝试使用 LuaInterface 时在 Linux 上的 Mono 上(在 Ubuntu 9.04 上使用 Mono 2.0)我得到以下异常:
** (App.exe:8599): WARNING **: Method ':.DoDllLanguageSupportValidation ()' in assembly '/home/ulrich/test/Debug/lua51.dll' contains native code that cannot be executed by Mono on this platform. The assembly was probably created using C++/CLI.
根据 this web site LuaInterface 可以与 Mono 一起使用。 MoMA也这么说。
是否可以重新编译 lua51.dll
使其与 Mono 兼容?
最佳答案
LuaInterface 看起来是纯 C#,但它使用 混合模式 C++/CLI 化版本的 Windows 版本的 native Lua 库,它混合了 .NEt 代码和 native 32 位 Windows代码。没有适用于 Windows 以外的平台的 C++/CLI 编译器,因此您无法移植/重新编译 C++/CLI 代码,尽管它应该可以在 Win32(或者可能是 Wine)上的 Mono 上工作。
让它在 Mono 上运行的唯一真正可行的方法是让它使用 P/Invokes 代替 C++/CLI。然后你可以使用 dllmap因此,当 Mono 尝试解析对 lua51.dll 的 P/Invoke 调用时,它会被重定向到 Linux 等效项 liblua.so.5.1。
关于c# - 如何在 Mono/Linux 上使用 LuaInterface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1533799/
我是一名优秀的程序员,十分优秀!