0

我有一个使用 Mono 在 Linux 上运行的 .NET 应用程序。我想避免用户必须安装 Mono,所以我使用mkbundle. 我mkbundle在 x86 机器上运行,期望生成的二进制文件能够在 x64 机器上运行:

mkbundle MyApp.exe *.dll -o MyApp

然后我可以使用 `./MyApp' 在构建机器上运行生成的应用程序

但是,当我将它复制到 x64 机器(并使其可执行)时,它不会运行,只是输出:

bash: ./MyApp: No such file or directory

如果我尝试ldd,我会得到:

not a dynamic executable

为 x86 构建的二进制文件不应该在 x64 系统上运行吗?

4

1 回答 1

0

我对 Linux 比较陌生,而且 x86/x64 似乎不像在 Windows 上那么简单,因为许多 x64 Linux 发行版不具备运行 32 位二进制文​​件的能力。

在 x64 机器上安装 32 位库后,x86 代码将按预期执行(例如在 Ubuntu 7.04 上,apt-get install ia32-libs.

虽然这可行,但由于我需要针对许多发行版,我决定只为 x86 和 x64 创建单独的构建。

于 2014-04-23T05:12:20.523 回答