使用mkbundle从C#源代码创建Linux可执行文件时出现问题

tyr*_*rex 4 c# linux mono debian mkbundle

在本提到的线程,以及在这里我使用mkbundle -o newfile oldfile.exe --static(OS:Ubuntu的11.10 64位,单声道:2.10.5)来创建其应在Apache Web服务器的可执行文件(OS:的Debian GNU/Linux的32位).这里oldfile.exe是使用C#-Hello-World-Code编译的结果mcs oldfile.cs.在原始系统(使用Ubuntu)上,该文件是可执行的.但是,当我newfile在Apache Web服务器上调用时,我收到错误:

不能执行二进制文件

此外,在做的file newfile时候说

ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库),不剥离

我怀疑如果mkbundle按照预期工作,那么它应该已经读过了

......静态联系......

不应该吗?任何人都知道为什么文件在服务器上不可执行?这是因为32位/ 64位的问题吗?

wRA*_*RAR 7

mkbundle从64位Mono生成64位可执行文件,您无法在32位内核上运行64位可执行文件.由于mkbundle没有生成32位二进制文​​件的选项,您显然需要使用32位Mono生成可执行文件(理论上您可以在64位系统上安装32位Mono但这不是很容易,所以我建议安装一个32位系统,可能在VM中.