在Linux上运行C#的方法
本文实例讲述了在Linux上运行C#的方法。分享给大家供大家参考。具体方法如下:
在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库、编译器/解释器、运行环境。库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写。.NET框架也不例外,包含了许多类库。另外,把程序转换成可执行形式以及运行执行文件时,编译器和运行环境是必不可少的。Mono软件包包含了.NET类库的一部分、一个C#编译器和.NET运行环境CLR(CommonLanguageRuntime,公共语言运行时环境)。
Mono声称支持Linux、Solaris、FreeBSD和MSWindows;除了Intelx86系列的CPU(486,各类Pentium等)之外,据说还要支持Sparc、PowerPC和StrongArm处理器。
下面就来看看如何在Linux上运行Mono。
命令行应用
先从Mono主页(http://www.go-mono.com/)下载软件,执行下面的命令安装所有RPM:
安装完成后,所有基本的动态执行库,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被复制到/usr/lib下。接下来,在Linux文本编辑器中输入下面的内容,把文件保存为HelloMono.cs:
{
publicstaticvoidMain(string[]args)
{System.Console.WriteLine("HelloMono");
}
}
执行下面的命令编译C#文件:
mcs是Mono的C#命令行编译器。与MS.NETSDK的csc编译器相似,mcs也有很多命令行选项。上面的命令将生成可执行文件HelloMono.exe。注意这个执行文件不是Linux执行文件,而是一个.NET执行文件,或者说,这个文件的可执行代码形式是中间语言(IL,IntermediateLanguage)。要运行这个执行文件,必须执行如下命令:
Linux控制台上将显示出"HelloMono"。关于mcs和Mono的更多说明,请执行manmcs或manmono参考其man文档。
GUI应用
Mono不支持WindowsForms,但在C#编程中可用GTK#编写GUI。GTK#是GTK+图形库的C#支持工具,可从http://gtk-sharp.sourceforge.Net/下载。下载完成后,先要安装RPM:
解开gtk-sharp-0.2.1.tar.gz:
进入子目录gtk-sharp-0.2.1,执行:
make
makeinstall
完成这一步骤之后,重新启动一次。与GTK#有关的所有动态代码模块(gtk-sharp.dll、atk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都会被复制到/usr/lib目录,编译用GTK#制作GUI的C#程序时,必须通过-r参数引用它们。GTK#下载包中包含了几个示例程序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。编译这些文件的命令如下:
mcs-rgtk-sharp-rglib-sharp-rSystem.DrawingMenu.cs
mcs-rgtk-sharp-rglib-sharp-rSystem.DrawingButtonApp.cs
下面来看看如何通过-r选项引用前面各个.dll动态模块。执行startx命令启动XWindow,进入终端窗口,再进入示例程序所在目录,执行下面的命令分别运行各个程序:
monoMenu.exe
monoButtonApp.exe
Mono项目还在完善和发展之中,还没有移植好全部.NET类。但不管怎样,它对许多人来说将是一个好消息。有关MonoC#类库移植进展的信息,感兴趣的朋友可以访问www.go-mono.com/class-status.html。
考虑一个典型的服务器/客户机式.NET应用:最终用户只与客户端打交道,客户端最好是方便的GUI应用,许多人还会希望使用熟悉的Windows平台。但是,对于他们来说,服务器端使用Windows还是Linux完全无关。所以,服务器端可以用带有Mono的Linux构造,节省了配备专用Windows服务器的投资。Mono也将为应用迁移带来方便。如果Mono能够顺利发展,Windows开发者也将能够为Linux或其他非Windows平台开发应用。如果这样的话,不久之后出现一个类似VisualStudio.NET但免费或廉价的Linux开发IDE也说不定。
然而,所有这一切是否能够成为现实,依赖于Mono是否能够茁壮发展,也依赖于Mono与Windows平台上的.NET框架兼容或相似程度。另外一些因素也很关键,例如Mono的性能、GUI的友好程度等。
希望本文所述对大家的C#程序设计有所帮助。
相关文章
- 错误分析Linux日志输出错误排查与分析(linux输出日志的)
- Linux应用与开发:发挥潜能(linux应用与开发)
- Linux下删除用户密码的操作步骤(linux删除用户密码)
- Linux系统启动浏览器简易指南(linux启动浏览器)
- 串Linux实现字符串替换的方法(linux替换字符)
- 学习Linux使用Git进行版本控制(linux使用git命令)
- 技巧解锁Linux系统:密码输入技巧(linux密码输入)
- 利用Linux快速切换工作区(linux工作区切换)
- 命令Linux下查看当前工作路径的pwd命令(linux中pwd)
- 掌握Linux系统的基本操作方法(linux系统的基本操作)
- Linux类型转换:让你轻松掌控数据类型(linux类型转换)
- Linux下实现快速登录图形界面的方法(linux登录图形界面)
- 在Linux下更新所有软件的简便方法(linux更新所有软件)
- 深入Linux:如何开启控制台(linux怎么打开控制台)
- Linux系统关闭防火墙方法(关闭linux的防火墙)
- Linux网络配置教程:快速连接VPN的方法(linux如何连接vpn)
- 极简Linux:用U盘装上操作系统(可以装u盘的linux)
- 掌握Linux的正确退出命令(linux的退出命令)
- 方法Linux系统:各种安装方式探索(linux各种安装)
- 掌握Linux运行时间的技巧与方法(linux运行时间)
- 如何在 Linux 中查看 IP 地址?(linux查看ip)
- 维基百科如何帮助你学习Linux(维基百科linux)
- 借助安卓系统远程控制Linux(安卓远程控制linux)