本文實例講述了在Linux上運行C#的方法。分享給大家供大家參考。具體方法如下:
在任何一個平臺(操作系統(tǒng)+硬件體系)上,編寫和運行程序的三個最根本的需求是庫、編譯器/解釋器、運行環(huán)境。庫以類和方法(函數(shù))的形式提供常用的例程,簡化大型程序的編寫。.NET框架也不例外,包含了許多類庫。另外,把程序轉(zhuǎn)換成可執(zhí)行形式以及運行執(zhí)行文件時,編譯器和運行環(huán)境是必不可少的。Mono軟件包包含了.NET類庫的一部分、一個C#編譯器和.NET運行環(huán)境CLR(Common Language Runtime,公共語言運行時環(huán)境)。
Mono聲稱支持Linux、Solaris、Free BSD和MS Windows;除了Intel x86系列的CPU(486,各類Pentium等)之外,據(jù)說還要支持Sparc、PowerPC和StrongArm處理器。
下面就來看看如何在Linux上運行Mono。
命令行應(yīng)用
先從Mono主頁(http://www.go-mono.com/)下載軟件,執(zhí)行下面的命令安裝所有RPM:
復(fù)制代碼 代碼如下:rpm -ivh *.rpm
安裝完成后,所有基本的動態(tài)執(zhí)行庫,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被復(fù)制到/usr/lib下。接下來,在Linux文本編輯器中輸入下面的內(nèi)容,把文件保存為HelloMono.cs:
復(fù)制代碼 代碼如下:class HelloMono 
{ 
public static void Main(string[ ] args) 
{ System.Console.WriteLine("Hello Mono"); 
} 
}
執(zhí)行下面的命令編譯C#文件:
復(fù)制代碼 代碼如下:mcs HelloMono.cs
mcs是Mono的C#命令行編譯器。與MS .NET SDK的csc編譯器相似,mcs也有很多命令行選項。上面的命令將生成可執(zhí)行文件HelloMono.exe。注意這個執(zhí)行文件不是Linux執(zhí)行文件,而是一個.NET執(zhí)行文件,或者說,這個文件的可執(zhí)行代碼形式是中間語言(IL,Intermediate Language)。要運行這個執(zhí)行文件,必須執(zhí)行如下命令:
復(fù)制代碼 代碼如下:mono HelloMono.exe
Linux控制臺上將顯示出"Hello Mono"。關(guān)于mcs和Mono的更多說明,請執(zhí)行man mcs或man mono參考其man文檔。
GUI應(yīng)用
Mono不支持Windows Forms,但在C#編程中可用GTK #編寫GUI。GTK #是GTK+圖形庫的C#支持工具,可從http://gtk-sharp.sourceforge.Net/下載。下載完成后,先要安裝RPM:
復(fù)制代碼 代碼如下:rpm -Uvh *.rpm --nodeps
解開gtk-sharp-0.2.1.tar.gz: 
復(fù)制代碼 代碼如下:tar -zxvf gtk-sharp-0.2.1.tar.gz
進入子目錄gtk-sharp-0.2.1,執(zhí)行: 
復(fù)制代碼 代碼如下:./configure --prefix=/usr 
make 
make install
完成這一步驟之后,重新啟動一次。與GTK#有關(guān)的所有動態(tài)代碼模塊(gtk-sharp.dll、atk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都會被復(fù)制到/usr/lib目錄,編譯用GTK#制作GUI的C#程序時,必須通過-r參數(shù)引用它們。GTK#下載包中包含了幾個示例程序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。編譯這些文件的命令如下:
復(fù)制代碼 代碼如下: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動態(tài)模塊。執(zhí)行startx命令啟動X Window,進入終端窗口,再進入示例程序所在目錄,執(zhí)行下面的命令分別運行各個程序:
復(fù)制代碼 代碼如下:mono HelloWorld.exe 
mono Menu.exe 
mono ButtonApp.exe
Mono項目還在完善和發(fā)展之中,還沒有移植好全部.NET類。但不管怎樣,它對許多人來說將是一個好消息。有關(guān)Mono C#類庫移植進展的信息,感興趣的朋友可以訪問www.go-mono.com/class-status.html。
新聞熱點
疑難解答
圖片精選