如何在Linux系统下制作64位gtk-sharp Mono应用?
问题解答
- 首先解释你看到的
file命令输出含义
你编译得到的helloworld.exe是Mono/.NET托管程序集,不是Windows原生PE程序。
PE32 executable Intel 80386是.NET程序集的默认头标识,不代表这个程序只能以32位模式运行,只要你编译时没有指定-platform:x86参数,默认生成的是AnyCPU架构的程序集。
- 关于Ubuntu下用Mono运行的架构
在64位Ubuntu系统上运行该程序集时,Mono运行时默认会以64位模式加载执行,你可以通过在代码中输出Console.WriteLine(IntPtr.Size);验证:输出为8就是64位模式,输出为4是32位模式。 - 关于gtk-sharp的64位支持
gtk-sharp 2和gtk-sharp 3均原生支持Linux 64位平台,包括Ubuntu在内的绝大多数主流Linux发行版的官方软件源都提供了amd64架构的gtk-sharp安装包,不存在不支持64位编程的情况。 - 如果你需要强制生成64位标识的程序集,可以在编译时添加
-platform:x64参数:
mcs helloworld.cs -pkg:gtk-sharp-2.0 -platform:x64
此时再用file命令查看输出,就会显示PE32+ 64位程序集的标识。
内容的提问来源于stack exchange,提问作者Jumogehn
相关产品推荐
相关产品推荐

