正如在thread以及here中提到的,我使用mkbundle -o newfile oldfile.exe –static(OS:Ubuntu 11.10 64bit,Mono:2.10.5)来创建一个应该可以在Apache Web Server(OS)上执行的文件:Debian GNU / Linux 32bit).这里,ol...

正如在thread以及here中提到的,我使用mkbundle -o newfile oldfile.exe –static(OS:Ubuntu 11.10 64bit,Mono:2.10.5)来创建一个应该可以在Apache Web Server(OS)上执行的文件:Debian GNU / Linux 32bit).这里,oldfile.exe是使用mcs oldfile.cs编译C#-Hello-World-Code的结果.在原始系统(使用Ubuntu)上,该文件是可执行的.但是,当我在Apache Web服务器上调用newfile时,我收到错误:
cannot execute binary file
此外,当做文件newfile时,它说
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
我怀疑如果mkbundle按照预期工作,那么它应该已经读过了
… statically linked …
不应该吗?任何人都知道为什么文件在服务器上不可执行?这是因为32位/ 64位的问题吗?
解决方法:
来自64位Mono的mkbundle生成64位可执行文件,您无法在32位内核上运行64位可执行文件.由于mkbundle没有生成32位二进制文??件的选项,您显然需要使用32位Mono生成可执行文件(理论上您可以在64位系统上安装32位Mono,但这不是很容易,所以我建议在某处安装32位系统,可能在VM中.
本文标题为:使用mkbundle从C#源代码创建Linux可执行文件时出现问题


- 如何使用C# 捕获进程输出 2023-03-10
- Oracle中for循环的使用方法 2023-07-04
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- c# 模拟线性回归的示例 2023-03-14
- user32.dll 函数说明小结 2022-12-26
- .NET CORE DI 依赖注入 2023-09-27
- Unity3D实现渐变颜色效果 2023-01-16
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- Unity Shader实现模糊效果 2023-04-27
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16