在任何乙個平台(作業系統+硬體體系)上,編寫和執行程式的三個最根本的需求是庫、編譯器/直譯器、執行環境。庫以類和方法(函式)的形式提供常用的例程,簡化大型程式的編寫。.net框架也不例外,包含了許多類庫。另外,把程式轉換成可執行形式以及執行執行檔案時,編譯器和執行環境是必不可少的。mono軟體包包含了.net類庫的一部分、乙個c#編譯器和.net執行環境clr(common language runtime,公共語言執行時環境)。
mono聲稱支援linux、solaris、free bsd和ms windows;除了intel x86系列的cpu(486,各類pentium等)之外,據說還要支援sparc、powerpc和strongarm處理器。
下面就來看看如何在linux上執行mono。
www.cppcns.com命令列應用
先從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 }
執行下面的命令編譯c#檔案:
複製** **如下:
mcs hellomono.cs
mcs是mono的c#命令列編譯器。與ms .net sdk的csc編譯器相似,mcs也有很多命令列選項。上面的命令將生成可執行檔案hellomono.exe。注意這個執行檔案不是linux執行檔案,而是乙個.net執行檔案,或者說,這個檔案的可執行**形式是中間語言(il,intermediat程式設計客棧e 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、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 -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,進入終端視窗,再進入示例程式所在目錄,執行下面的命www.cppcns.com令分別執行各個程式:
複製** **如下:
mono helloworld.exe
mono menu.exe
mono buttonapp.exe
在Linux上執行C
眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...
在Linux上執行C
眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...
在Linux上執行C
在任何乙個平台 作業系統 硬體體系 上,編寫和執行程式的三個最根本的需求是庫 編譯器 直譯器 執行環境。庫以類和方法 函式 的形式提供常用的例程,簡化大型程式的編寫。net框架也不例外,包含了許多類庫。另外,把程式轉換成可執行形式以及執行執行檔案時,編譯器和執行環境是必不可少的。mono軟體包包含了...