最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Linux上運行C#的方法

 更新時間:2014年12月09日 09:58:40   投稿:shichen2014  
這篇文章主要介紹了在Linux上運行C#的方法,實例分析了Linux平臺下Mono軟件包的應用技巧,以及在此基礎之上的C#運行方法,具有一定的參考借鑒價值,需要的朋友可以參考下

本文實例講述了在Linux上運行C#的方法。分享給大家供大家參考。具體方法如下:

在任何一個平臺(操作系統(tǒng)+硬件體系)上,編寫和運行程序的三個最根本的需求是庫、編譯器/解釋器、運行環(huán)境。庫以類和方法(函數(shù))的形式提供常用的例程,簡化大型程序的編寫。.NET框架也不例外,包含了許多類庫。另外,把程序轉換成可執(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。

命令行應用

先從Mono主頁(http://www.go-mono.com/)下載軟件,執(zhí)行下面的命令安裝所有RPM:

復制代碼 代碼如下:
rpm -ivh *.rpm

安裝完成后,所有基本的動態(tài)執(zhí)行庫,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被復制到/usr/lib下。接下來,在Linux文本編輯器中輸入下面的內(nèi)容,把文件保存為HelloMono.cs:

復制代碼 代碼如下:
class HelloMono
{
public static void Main(string[ ] args)
{ System.Console.WriteLine("Hello Mono");
}
}

執(zhí)行下面的命令編譯C#文件:

復制代碼 代碼如下:
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í)行如下命令:

復制代碼 代碼如下:
mono HelloMono.exe

Linux控制臺上將顯示出"Hello Mono"。關于mcs和Mono的更多說明,請執(zhí)行man mcs或man mono參考其man文檔。

GUI應用

Mono不支持Windows Forms,但在C#編程中可用GTK #編寫GUI。GTK #是GTK+圖形庫的C#支持工具,可從http://gtk-sharp.sourceforge.Net/下載。下載完成后,先要安裝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,執(zhí)行:
復制代碼 代碼如下:
./configure --prefix=/usr
make
make install

完成這一步驟之后,重新啟動一次。與GTK#有關的所有動態(tài)代碼模塊(gtk-sharp.dll、atk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都會被復制到/usr/lib目錄,編譯用GTK#制作GUI的C#程序時,必須通過-r參數(shù)引用它們。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動態(tài)模塊。執(zhí)行startx命令啟動X Window,進入終端窗口,再進入示例程序所在目錄,執(zhí)行下面的命令分別運行各個程序:

復制代碼 代碼如下:
mono HelloWorld.exe
mono Menu.exe
mono ButtonApp.exe

Mono項目還在完善和發(fā)展之中,還沒有移植好全部.NET類。但不管怎樣,它對許多人來說將是一個好消息。有關Mono C#類庫移植進展的信息,感興趣的朋友可以訪問www.go-mono.com/class-status.html。

考慮一個典型的服務器/客戶機式.NET應用:最終用戶只與客戶端打交道,客戶端最好是方便的GUI應用,許多人還會希望使用熟悉的Windows平臺。但是,對于他們來說,服務器端使用Windows還是Linux完全無關。所以,服務器端可以用帶有Mono的Linux構造,節(jié)省了配備專用Windows服務器的投資。Mono也將為應用遷移帶來方便。如果Mono能夠順利發(fā)展,Windows開發(fā)者也將能夠為Linux或其他非Windows平臺開發(fā)應用。如果這樣的話,不久之后出現(xiàn)一個類似Visual Studio .NET但免費或廉價的Linux開發(fā)IDE也說不定。

然而,所有這一切是否能夠成為現(xiàn)實,依賴于Mono是否能夠茁壯發(fā)展,也依賴于Mono與Windows平臺上的.NET框架兼容或相似程度。另外一些因素也很關鍵,例如Mono的性能、GUI的友好程度等。

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C#獨立域名查詢代碼

    C#獨立域名查詢代碼

    C#獨立域名查詢代碼...
    2007-04-04
  • C# WinForm程序處理后臺繁忙導致前臺控件假死現(xiàn)象解決方法

    C# WinForm程序處理后臺繁忙導致前臺控件假死現(xiàn)象解決方法

    這篇文章主要介紹了C# WinForm程序處理后臺繁忙導致前臺控件假死現(xiàn)象解決方法,本文通過Application.DoEvents()解決這個問題,并講解了Application.DoEvents()的作用,需要的朋友可以參考下
    2015-06-06
  • 使用Nopcommerce為商城添加滿XX減XX優(yōu)惠券功能

    使用Nopcommerce為商城添加滿XX減XX優(yōu)惠券功能

    中秋國慶節(jié)眼看到跟前了,很多商城都借此機會搞促銷活動,什么滿200減80送優(yōu)惠券等活動,基于后臺程序是怎么實現(xiàn)的呢?下面腳本之家小編帶領大家一起學習吧
    2015-09-09
  • C#下使用XmlDocument操作XML詳解

    C#下使用XmlDocument操作XML詳解

    本文詳細講解了C#使用XmlDocument操作XML的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C# try catch代碼塊不起效果的解決方法

    C# try catch代碼塊不起效果的解決方法

    本文主要介紹了C# try catch代碼塊不起效果的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • C#中Backgroundworker與Thread的區(qū)別

    C#中Backgroundworker與Thread的區(qū)別

    本文主要介紹了C#中Backgroundworker與Thread的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • C#實現(xiàn)漢字轉拼音(多音字)功能詳解

    C#實現(xiàn)漢字轉拼音(多音字)功能詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)漢字轉拼音(支持多音字)的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-02-02
  • c# 區(qū)分幾種定時器(timer)

    c# 區(qū)分幾種定時器(timer)

    這篇文章主要介紹了c# 幾種定時器(timer)的區(qū)別,文中講解非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C#實現(xiàn)右鍵快捷菜單(上下文菜單)的兩種方式

    C#實現(xiàn)右鍵快捷菜單(上下文菜單)的兩種方式

    在C#中,ContextMenuStrip是一種用于創(chuàng)建右鍵菜單的控件,它提供了一種方便的方式來為特定的控件或窗體添加自定義的上下文菜單選項,有兩種實現(xiàn)方式,文中介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • C#如何獲取枚舉的描述屬性詳解

    C#如何獲取枚舉的描述屬性詳解

    這篇文章主要給大家介紹了關于C#如何獲取枚舉的描述屬性的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02

最新評論

德兴市| 多伦县| 东丽区| 满洲里市| 林芝县| 磴口县| 东港市| 东兰县| 新田县| 高青县| 鄢陵县| 苍南县| 中阳县| 柞水县| 永春县| 梅河口市| 大丰市| 开远市| 琼结县| 金门县| 习水县| 毕节市| 乳源| 九龙坡区| 黑龙江省| 吉木乃县| 垫江县| 明水县| 开封市| 黑水县| 洛阳市| 鹤岗市| 盘山县| 府谷县| 定襄县| 华坪县| 青田县| 石狮市| 静乐县| 通城县| 康保县|