在Linux上執行C

2021-04-13 12:34:59 字數 1906 閱讀 5517

眾所周知,c#是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x、me、nt、2000、xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c#是唯一被移植到非windows平台的.net語言。

在任何乙個平台(作業系統+硬體體系)上,編寫和執行程式的三個最根本的需求是庫、編譯器/直譯器、執行環境。庫以類和方法(函式)的形式提供常用的例程,簡化大型程式的編寫。.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。

命令列應用

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,intermediate language)。要執行這個執行檔案,必須執行如下命令:

mono hellomono.exe

gui應用

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

mcs -r gtk-sharp -r glib-sharp helloworld.cs

mcs -r gtk-sharp -r glib-sharp -r system.drawing menu.cs

下面來看看如何通過-r選項引用前面各個.dll動態模組。執行startx命令啟動x window,進入終端視窗,再進入示例程式所在目錄,執行下面的命令分別執行各個程式:

mono helloworld.exe

mono menu.exe

考慮乙個典型的伺服器/客戶機式.net應用:終端使用者只與客戶端打交道,客戶端最好是方便的gui應用,許多人還會希望使用熟悉的windows平台。但是,對於他們來說,伺服器端使用windows還是linux完全無關。所以,伺服器端可以用帶有mono的linux構造,節省了配備專用windows伺服器的投資。mono也將為應用遷移帶來方便。如果mono能夠順利發展,windows開發者也將能夠為linux或其他非windows平台開發應用。如果這樣的話,不久之後出現乙個類似visual studio .net但免費或廉價的linux開發ide也說不定。

然而,所有這一切是否能夠成為現實,依賴於mono是否能夠茁壯發展,也依賴於mono與windows平台上的.net框架相容或相似程度。另外一些因素也很關鍵,例如mono的效能、gui的友好程度等。 

在Linux上執行C

眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...

在Linux上執行C

在任何乙個平台 作業系統 硬體體系 上,編寫和執行程式的三個最根本的需求是庫 編譯器 直譯器 執行環境。庫以類和方法 函式 的形式提供常用的例程,簡化大型程式的編寫。net框架也不例外,包含了許多類庫。另外,把程式轉換成可執行形式以及執行執行檔案時,編譯器和執行環境是必不可少的。mono軟體包包含了...

在Linux上執行C 的方法

在任何乙個平台 作業系統 硬體體系 上,編寫和執行程式的三個最根本的需求是庫 編譯器 直譯器 執行環境。庫以類和方法 函式 的形式提供常用的例程,簡化大型程式的編寫。net框架也不例外,包含了許多類庫。另外,把程式轉換成可執行形式以及執行執行檔案時,編譯器和執行環境是必不可少的。mono軟體包包含了...