A. 如何在linux上运行Mono
先从Mono主页 )下载软件,执行下面的命令安装所有RPM:
rpm -ivh *.rpm
安装完成后,所有基本的动态执行库,包括System.Data.dll、System.dll、System.Draw
ing.dll、System.Web.dll和System.Xml.dll都被复制到/usr/lib下。接下来,在Linux文
本编辑器中输入下面的内容,把文件保存为HelloMono.cs:
class HelloMono
{
public static void Main(string[ ] args)
{ System.Console.WriteLine("Hello Mono");
}
}
执行下面的命令编译C#文件:
mcs HelloMono.cs
mcs是Mono的C#命令行编译器。与MS .NET SDK的csc编译器相似,mcs也有很多命令行选项
。上面的命令将生成可执行文件HelloMono.exe。注意这个执行文件不是Linux执行文件,
而是一个.NET执行文件,或者说,这个文件的可执行代码形式是中间语言(IL,Intermed
iate Language)。要运行这个执行文件,必须执行如下命令:
mono HelloMono.exe
Linux控制台上将显示出"Hello Mono"。关于mcs和Mono的更多说明,请执行man mcs或man
mono参考其man文档。
GUI应用
Mono不支持Windows Forms,但在C#编程中可用GTK #编写GUI。GTK #是GTK+图形库的C#支持工具。下载完成后,先要安装RPM:
rpm -Uvh *.rpm --nodeps
解开gtk-sharp-0.2.1.tar.gz:
tar -zxvf gtk-sharp-0.2.1.tar.gz
进入子目录gtk-sharp-0.2.1,执行:
./configure --prefix=/usr
make
make install
完成这一步骤之后,重新启动一次。与GTK#有关的所有动态代码模块(gtk-sharp.dll、a
tk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都会被复制到/u
sr/lib目录,编译用GTK#制作GUI的C#程序时,必须通过-r参数引用它们。GTK#下载包中包
含了几个示例程序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。编译这些文件的命令
如下:
mcs -r gtk-sharp -r glib-sharp HelloWorld.cs
mcs -r gtk-sharp -r glib-sharp -r System.Drawing Menu.cs
mcs -r gtk-sharp -r glib-sharp -r System.Drawing ButtonApp.cs
下面来看看如何通过-r选项引用前面各个.dll动态模块。执行startx命令启动X Window,
进入终端窗口,再进入示例程序所在目录,执行下面的命令分别运行各个程序:
mono HelloWorld.exe
mono Menu.exe
mono ButtonApp.exe
Mono项目还在完善和发展之中,还没有移植好全部.NET类。但不管怎样,它对许多人来说
将是一个好消息。有关Mono C#类库移植进展的信息,请访问www.go-mono.com/class-sta
tus.html。
考虑一个典型的服务器/客户机式.NET应用:最终用户只与客户端打交道,客户端最好是方
便的GUI应用,许多人还会希望使用熟悉的Windows平台。但是,对于他们来说,服务器端
使用Windows还是Linux完全无关。所以,服务器端可以用带有Mono的Linux构造,节省了配
备专用Windows服务器的投资。Mono也将为应用迁移带来方便。如果Mono能够顺利发展,W
indows开发者也将能够为Linux或其他非Windows平台开发应用。如果这样的话,不久之后
出现一个类似Visual Studio .NET但免费或廉价的Linux开发IDE也说不定。
然而,所有这一切是否能够成为现实,依赖于Mono是否能够茁壮发展,也依赖于Mono与Wi
ndows平台上的.NET框架兼容或相似程度。另外一些因素也很关键,例如Mono的性能、GUI
的友好程度等。
B. 最近开始接触C#,遇到mono使用问题
我下载了很多rpm文件,然后使用命令安装了。我看资料说默认安装的mono是在usr/local/lib下面但是我没有看到
但是我可以使用mono命令,而已。在linux建立一个简单控制台程序输出一个hello world。是成功
然后我就是开始把我windows上的一个很简单winform运行到linux。但是一直报错:大概是这样的,类型初始化错误,加载dll的时候错误,是那个gdi
C. 请问c#一般用什么编译器专业和学习的都用什么
在win下,
1.你可以用csc,也就是vs2003/2005/2008/2010
2.使用BDS2006,
3.使用mono
在liunx下
使用mono
D. mono的语言
公共语言基础(Common Language Infrastructure,CLI),又叫公共语言运行时(Common Language Runtime),已由Mono实现。该运行时用于执行已编译的.NET应用程序。公共语言基础已被ECMA定义为标准ECMA-335。要运行一个.NET应用程序,你必须使用相应的参数调用运行时。
在ECMA-335的第六章详细说明了公共语言规范(Common Language Specification,CLS)并定义了提供给公共语言基础的接口,例如对于枚举类型的隐含表示类型的协定。 Mono的编译器负责生成符合公共语言规范的映射代码,即公共中间语言(Common Intermediate Language,CIL)。 Mono的运行时将运行这类代码。 ECMA标准先前还定义了一个符合公共语言规范的程序库作为应用框架。
E. 使用C# 和 Mono 开发的 Android 应用与 java 开发的有什么不同...
最终结果没什么不同,因为无论是用java还是C#来写,都要由JIT编译器来解释为机器语言(Mono就相当于第三方的JIT,在中间做转换用的),但是,因为mono本身不是免费的,而且涉及相关资料的问题,一般不建议用mono,加上c#与java有99%的语法是相似的,如果很熟悉C#那只需要简单的看几天安卓相关资料就可以用java上手开发的,没必要用mono
F. c#跨平台应用要有mono运行环境吗
在提到Mono跨平台的时候,我们首先需要引入公共语言基础(Common Language Infrastructure,CLI)这个概念,CLI是一套ECMA定义的标准,它定义了一个和语言无关的跨体系结构的运行环境,这使得开发者可以用规范定义内各种高级语言来开发软件,并且无需修正即可让软件运行在不同的计算机体系结构上。因此我们可以说跨平台的原理是因为我们定义了这样一个和语言无关的跨体系结构的运行环境规范,只要符合这个规范的应用程序都可以运行在不同的计算机体系结构上,即实现了跨平台。针对这个标准,微软实现了公共语言运行时(Common Language Runtime,CLR),因此CLR是CLI的一个实现。我们熟悉的.NET框架就是一个在CLR基础上采用系统虚拟机的编程平台,它为我们提供了支持多种编程语言如C#、VB.NET、C++、Python等。我们编写的C#程序首先会被C#编译器编译为公共中间语言即CIL或者是MSIL(微软中间语言),然后再由CLR转换为操作系统的原生代码(Native Code)。
G. mono什么意思
Mono是一个由Novell公司(由Xamarin发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)主持的项目.该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Language)执行平台(Platform).与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux, FreeBSD, Unix, Mac OS X和Solaris。
H. mono和probe是什么意思
Mono是一个由Xamarin公司(先前是Novell,最早为Ximian)所主持的自由开放源代码项目。该项目的目标是创建一系列匹配ECMA标准(Ecma-334和Ecma-335)的.NET工具,包括C#编译器和通用语言架构。
Probe是指探机,探机是暴雪娱乐公司出品的即时战略游戏《星际争霸》中的星灵基础建设单位,可由星灵枢纽折跃至战场。
(8)mono编译器学习扩展阅读:
Mono虚拟机包含一个实时编译引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390 (32位模式和64位模式),x86-x64,IA64和64位模式的SPAR。该虚拟机可以将代码实时编译或者预先编译到原生代码,对于那些没有列出来的系统,则使用的是代码解释器。
现有大量与Mono相关的用于扩展Mono的项目,这些项目允许开发者在他们的开发环境中使用Mono。这些项目包括:
Cocoa#,对原生Mac OS X工具包的一系列包装(Cocoa)。
Gecko#,一个对在Mozilla中使用的嵌入式布局引擎的绑定(Gecko).
Gtk#,对使用C的GTK+库的C#的外包。
Tao,一个图形及游戏库的绑定。
I. 有人用过mono吗有没有办法windows下编译生成,然后部署到linux去
1、可以安装cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件,搜索官网下载即可,下载完成,安装的时候注意记得安装相关语言的编译器、解释器,在cygwin中生成Linux可执行文件。 2、 可以安装v...
J. 如何在Linux系统中编译安装Mono笔记
Mono声称支持Linux、Solaris、Free BSD和MS Windows;除了Intel x86系列的CPU(486,各类Pentium等)之外,据说还要支持Sparc、PowerPC和StrongArm处理器。 下面就来看看如何在Linux上运行Mono。
命令行应用
下载软件,执行下面的命令安装所有RPM:rpm -ivh *.rpm
安装完成后,所有基本的动态执行库,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被复制到/usr/lib下。接下来,在Linux文本编辑器中输入下面的内容,把文件保存为HelloMono.cs:
class HelloMono
{
public static void Main(string[ ] args)
{ System.Console.WriteLine("Hello Mono");
}
}
执行下面的命令编译C#文件:
mcs HelloMono.cs
mcs是Mono的C#命令行编译器。与MS .NET SDK的csc编译器相似,mcs也有很多命令行选项
。上面的命令将生成可执行文件HelloMono.exe。注意这个执行文件不是Linux执行文件,
而是一个.NET执行文件,或者说,这个文件的可执行代码形式是中间语言(IL,Intermed
iate Language)。要运行这个执行文件,必须执行如下命令:
mono HelloMono.exe
Linux控制台上将显示出"Hello Mono"。关于mcs和Mono的更多说明,请执行man mcs或man
mono参考其man文档。