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文檔。