我认为mkbundle2的目的是允许没有安装mono的机器运行mono应用程序。但它似乎并没有包装libmono.so。我不确定是否应该这样做,但是目标机器抱怨在我运行包时找不到libmono.so.0。为什么要查找那个文件?如果需要的话,为什么它会在包里之外的任何地方寻找呢?如果它应该在包里,为什么不把它放在那里呢?我使用“-deps”选项来包含所有依赖项。我错过什么了吗?
添加--static选项后,我在目标计算机上得到这个结果:
未处理的异常:System.TypeInitializationException:System.Windows.Forms.Xplatui--->System.DllNotFoundException:libc的类型初始值设定项引发了异常
at(包装管理为本机)system.windows.forms.xplatui:uname(intptr)
在system.windows.forms.xplatui..cctor()[0x0000]中:0
使用export mono_log_level=debug显示更多信息:
mono信息:dllimport试图加载:“libc”。
mono信息:dllimport加载位置:“libc.so”。
mono信息:dllimport加载库时出错:“/usr/lib64/libc.so:elf头无效”。
mono信息:dllimport加载库:'./libc.so'。
mono信息:dllimport加载库“”时出错。libc.so:无法打开共享对象文件:没有这样的文件或目录。
mono信息:dllimport正在加载:“libc”。
mono信息:dllimport在加载库“libc:cannot open shared object file:no such file or directory”时出错。
这是否意味着我正试图在带有不兼容硬件的计算机上运行?这两台机器都是SUSE Linux Enterprise Server 11(x86_)。