2009-07-17 82 views
6

我開始使用Mono在C#和C++中開發應用程序。我想問你,Mono如何編譯C++代碼?它使用GCC嗎?看到它有STL容器真是太神奇了...另外,我可以在Mono中使用Boost庫和GSL庫嗎?提前致謝!!!使用Mono在C++中進行開發

回答

7

我認爲您必須使用IDE的MonoDevelop,而不是單聲道本身

是,MonoDevelop的使用GCC/G ++編譯C/C++源代碼,但它不會被編譯到CIL。 - 它被編譯爲本地二進制

如果我理解正確,那麼你應該可以使用提升就好了

但是,如果您詢問Mono是否支持混合模式程序集或可執行文件(例如。程序集/ exe包含本機和.NET CIL),那麼我很抱歉地通知您,此功能不受支持,Mono也不會將C++編譯爲純CIL。

+0

是的,我正在使用MonoDevelop。我遇到的問題是我不知道如何鏈接boost庫。如果我想包含array.hpp文件,我寫了#include ,但是因爲這個文件調用了其他文件,並且這些文件在array.hpp文件中的目錄是「/ boost/somefile「,我的目錄有問題。我能做什麼? – user123668 2009-07-20 01:04:38

+0

具體來說,目錄應該是/ directories/boost/somefile,而不是/ boost/somefile。 – user123668 2009-07-20 01:06:52

+1

好的,你想要做的是設置C++包含路徑。你不想#include,你​​應該做的是#include ,並將/ full/path /添加爲include路徑MonoDevelop的項目選項(在代碼生成下)。 – jstedfast 2009-08-06 17:59:06

5

只要你不需要混合模式(即忘記本機部分並且僅用於CIL),mono就可以與C++代碼一起工作(我聽說他們現在實驗性地支持混合模式,尤其是在Windows上) ,以及其他地方通過葡萄酒,但我認爲那部分還沒有準備好黃金時間)。目前支持良好的C++編譯器是Net 2.x框架上的Microsoft C++/CLI; (目前多年來)已經開始添加gcc,但我不知道迄今爲止的任何生產就緒結果:-(。