是否可以在x86上强制启动mono运行时
本文关键字:启动 mono 运行时 x86 是否 | 更新日期: 2023-09-27 18:28:27
我有一个非常简单的程序:
using System;
public class Program
{
public static void Main()
{
Console.WriteLine(IntPtr.Size);
}
}
让我们使用mono编译器将其构建为x86应用程序,并在x64 mono:上运行
$ uname -srvmpio ; lsb_release -d
Linux 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Description: Ubuntu 14.04.1 LTS
$ mono --version
Mono JIT compiler version 3.10.0 (tarball Mon Oct 27 14:33:41 IST 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
$ mcs -platform:x86 Program.cs
$ mono Program.exe
8
Mono已成功启动该程序。但它已经启动了我的程序作为x64应用程序。如果我在带有Microsoft.NET Runtime的Windows上运行这个二进制文件,我会在控制台输出中获得4
(它将作为x86应用程序运行)。那么,强制启动mono运行时作为x86是可能的吗?
-platform:x86标志用于编译器。它与mono运行时分配给程序的内存空间无关。如果您想以64位运行程序,请使用64位mono运行时。如果您想以32位运行程序,请使用32位mono运行时。
因此,这个问题是Mono-interop的重复:加载32位共享库在我的64位系统上不起作用