【问题标题】:Building with Mono mkbundle on x86 won't run on x64在 x86 上使用 Mono mkbundle 构建不会在 x64 上运行
【发布时间】:2014-04-04 13:51:02
【问题描述】:

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

mkbundle MyApp.exe *.dll -o MyApp

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

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

bash: ./MyApp: No such file or directory

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

not a dynamic executable

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

【问题讨论】:

    标签: linux mono 64-bit 32-bit mkbundle


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      相关资源
      最近更新 更多