我写的关于如何在linux编译安装mono的文章,全文如下。。。
1.为了与时俱进,我决定从mono的svn上下载最新的代码来编译。
先准备代码,建立目录将代码check出来:
svn co svn://svn.myrealbox.com/source/trunk/mcs
svn co svn://svn.myrealbox.com/source/trunk/mono
svn co svn://svn.myrealbox.com/source/trunk/monodoc
svn co svn://svn.myrealbox.com/source/trunk/gtk-sharp
svn co svn://svn.myrealbox.com/source/trunk/mono-tools
2.编译mono基本系统
进入check出来的mono目录:
./autogen.sh --prefix=/usr --sysconfdir=/etc
如果从svn来编译会有一个问题,因为mcs(mono的cs编译器)
是用cs写,我们要编译cs程序就必须有个mcs的编译器,而mcs
是用cs代码写的,所以必须系统中必须事先存在一个mcs,在
发布版的tar.gz包里已经包含了一个mcs,而svn上的没包含,
有两种方法可以解决,一个是先下一个编译好的mono包安装,
比如如果是ubuntu的话:sudo apt-get install mono,第二
种方法,在check出来的mono目录中运行:
make get-monolite-latest
不过,这种方法经常报如下错误:
Corlib not in sync with this runtime: expected corlib version 43, found 41.
原因是在mono/metadata/appdomain.c文件中:
#define MONO_CORLIB_VERSION 43
mscorlib.dll的版本号为43,而我刚下载的monolite(20051110)
的mscorlib.dll的版本号为41不一致无法编译,所以还是第一
中方法好些。
编译系统
make
在安装mono系统之前将先前安装的mono包删除,然后安装
sudo make install
或者
sudo checkinstall
sudo dpkg -i *.deb
mono基本系统编译时会自动编译mono和mcs目录下的文件。
3.安装monodoc
./autogen.sh --prefix=/usr
make
sudo make install
或者
sudo checkinstall
sudo dpkg -i *.deb
monodoc里面包含的只是制作mono帮助的工具和assembly,而
帮助阅览器在mono-tools中,后面的包都会用到monodoc来制
作帮助,所以要提前编译它。
4.安装gtk-sharp
编译安装方法同上。
5.安装mono-tools
这个包可能比较陈旧了编译时会遇到一些问题。
a.首先找不到gtk-sharp.pc等这样的东西。
解决方法将/usr/lib/pkgconfig中的*-sharp-2.0.pc都拷贝
一份命名*-sharp.pc。
b.编译时报无编译admin.exe的方法。
将mono-tools/docbrowser/Makefile中相关admin的部分屏蔽,
如果用gtkhtml-sharp做帮助浏览器的引擎就不会出现这样的
问题,如果哦用gecko-sharp做引擎好像就会出现。
编译安装方法同上
其他包的注意事项:
libgdiplus,因为它用到cairo,而当前cvs上的cairo有几个
原来公开的函数私有话了,所以编译时会报未定义函数的错
误(比如_cairo_box_round_to_rectangle),解决方法:
在cairo/src/cairoint.h中找到cairo_private定义的地方,
如下
/* slim_internal.h */
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__)
#define cairo_private __attribute__((__visibility__("hidden")))
#else
#define cairo_private
#endif
然后在后面添加,将private定义为空
#define cairo_private
<script type="text/javascript">
if ($ != jQuery) {
$ = jQuery.noConflict();
}
var isLogined = false;
var cb_blogId = 9866;
var cb_entryId = 332147;
var cb_blogApp = "pigboy";
var cb_blogUserGuid = "6996310b-63cf-dd11-9e4d-001cf0cd104b";
var cb_entryCreatedDate = '2006/2/16 23:45:00';
</script>
分享到:
相关推荐
本压缩包“mono编译配置.rar”显然是关于如何在不同系统上配置和使用Mono进行编译的资源集合。这里,我们将深入探讨Mono编译配置的相关知识点。 1. ** Mono简介** Mono是Xamarin公司(现为微软所有)开发的一个...
在Linux环境下安装Mono平台是编译Mono源码的前提。用户需要先从Mono官方资源库下载Mono资源到本地,然后添加相应的软件源,之后通过包管理器安装mono-devel包。安装过程中,可能需要确认磁盘空间足够以及等待资源...
然后,作者详细记录了安装 Mono 的过程,包括使用 wget 命令下载 Mono 源代码、解压缩、编译和安装等步骤。 在安装过程中,作者遇到了多个问题,例如缺少 g++ 等必备工具、编译错误等,并记录了解决这些问题的方法...
先在VS2012上编译一个winform,代码如下: using System; using System.Windows.Forms; namespace FormsTest { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { ...
### Mono编译安装注意事项 #### 7. 环境依赖检查 - 在编译过程中,系统会自动检查所需的编译环境是否完备。比如检查GCC编译器是否存在、是否支持ISOC89标准等。 - 如果发现缺少某些依赖库或工具,可以尝试手动安装...
讲述Mono在CentOS 6.6下的编译和安装过程
这个技术基于Mono项目,一个开源的.NET实现,旨在提供与Microsoft .NET Framework兼容的开发环境。 1. **Mono项目介绍** Mono是由Xamarin(现已被微软收购)维护的开源项目,它实现了.NET框架的部分,并且提供了跨...
mono-build 提供了一种在类 UNIX 系统上编译和安装不同版本 Mono 的简单方法。 安装单体构建 $ git clone git://github.com/dragan/mono-build.git $ cd mono-build $ ./install.sh 这会将 mono-build 安装到/usr/...
第一个 MONO 程序:安装完成后,用户可以编写第一个 Mono 程序,使用 Mono 编译器来编译程序,并在终端中运行程序。 Mono 是一个开源的 .NET 平台,它提供了跨平台的开发环境,开发者可以使用 C# 语言和 CLI 来编写...
这个zip文件可能包含了预编译的二进制文件、配置脚本和必要的库文件,方便在Windows系统上快速安装和配置mod_mono。 总的来说,这些资源对于那些想要在Windows环境下利用Apache服务器运行.NET应用程序的开发者来说...
从官方网站下载最新版本的MONO安装包,例如`mono-1.1.13.8.tar.gz`,然后解压缩并进行编译安装: ```bash tar -zxvf mono-1.1.13.8.tar.gz cd mono-1.1.13.8 ./configure make make install ``` 3. **编写...
总结,配置CentOS上的MONO环境包括更新系统、安装必要库、安装libgdiplus、安装MONO、配置环境变量以及验证安装。这个过程对于在Linux环境中运行.NET应用程序是至关重要的。尽管MONO不完全等同于.NET Framework,但...
4. **编译或安装mod_mono**:对于Windows用户,通常会提供预编译的二进制文件。下载后,将mod_mono.dll复制到Apache的modules目录下。 5. **配置Apache**:打开Apache的配置文件httpd.conf,添加以下行来加载mod_...
4. **编译与调试**:讲述如何使用MONO的编译工具(如mcs和gmcs)以及调试器(如 mdb)来构建和调试.NET应用程序。 5. **跨平台兼容性**:讨论在不同操作系统上运行.NET应用时可能遇到的问题及解决策略,包括文件...
2. **Unity与Mono的关系**: - **Mono运行时**:Unity使用Mono作为其.NET框架,提供C#脚本的支持。Mono包括了编译器、垃圾回收器、类库和运行时环境。 - **AOT( Ahead-of-Time)编译**:Unity在构建时会将C#代码...
《Practical Mono》是一本关于Mono技术的珍贵资源,它以PDF扫描版的形式存在,是学习和提升Mono技能的重要参考资料。Mono是一个开源的.NET框架,它使得C#、VB.NET等.NET语言能在多种操作系统上运行,包括Linux、Mac ...
6. **AOT(Ahead-Of-Time)编译与JIT(Just-In-Time)编译**:Mono支持AOT和JIT两种编译方式,分别用于不同的场景。分析这两种编译策略的实现,有助于理解它们的优缺点以及如何根据应用需求选择合适的编译模式。 7....
3. 安装:执行 `sudo make install`,将编译好的 mod_mono 安装到系统目录。 4. 配置 Apache:编辑 Apache 的配置文件(如 httpd.conf),加载 mod_mono 模块并配置 ASP.NET 应用的路径。 5. 重启 Apache:`sudo ...
4. **验证安装**:安装完成后,可以运行`mono -V`检查Mono的版本,确认安装成功。 5. **部署和运行.NET应用**:现在,你可以在Linux上使用`mono`命令运行.NET程序,例如: ``` mono myapp.exe ``` 除了基本的...