如何在Solaris下面build Mono(How to build Mono on Solaris)

前几天看到一片好的文章,拿来分享一下 

  How to build Mono on Solaris

From Genunix

1 What is Mono? 
 
Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix. Sponsored by Novell, the Mono open source project has an active and enthusiastic contributing community . Its homepage is http://www.mono-project.com/Main_Page. 
 
2 Components for Mono 
 
mono: C# compiler, runtime environment etc. 
libgdiplus: GDI+ drawing api implementation for Mono 's System.Drawing. 
xsp: Standalone web server written in C# that can be used to run your ASP.NET applications. 
mod_mono: An Apache 1.3/2.0/2.2 module that provides ASP.NET support for Apache. 
gtk-sharp-1.0.10: GTK1 c# binds. 
gtk-sharp-2.4.2: GTK2(2.4) c# binds. 
gtk-sharp-2.8.2: GTK2(2.8) c# binds. 
There are other components, such as development tools. For more information please refer to its homepage. 
 
3 Where to download 
 
You can download Mono and component packages from page http://www.mono-project.com/Downloads. 
 
4 Tools to build Mono 
 
GNU tar to unpack the sources, as Solaris tar has problems unpacking Mono. 
GNU build tools, such as gcc, gld, gas etc. 
Notes: 
GCC installed in the /usr/sfw/ works fine. although gld, gas etc are not included, it seems it 's ok. 
Because make included in CBE is GNU make, so it should be ok. 
5 Build instructions 
 
libgdiplus(1.1.13.6) 
 
libgdiplus is optional, but if you need GDI+ drawing api support for Mono, you should build it. 
 
On Sparc, 
 
   configure, gmake, gmake check, gmake install
is ok. 
 
On x86, you need to change the source code according to http://mail-index.netbsd.org/pkgsrc-bugs/2005/10/18/0013.html, because there are some problem when building included cairo
 
Mono(1.1.13.8) 
 
If you set your build environment properly, the build process of Mono is straight forward. 
 
On Sparc, just 
 
   configure, gmake, gmake check, gmake install
is ok. And when you do "gmake check", all check should passed(My test result:193 test(s) passed. 0 test(s) did not pass.), but the check process would fail after the test if you are not using gas. 
 
On x86, you need add "--with-tls=pthread" when you do configure to avoid error 
 
   In file included from /usr/include/link.h:35,
                    from dyn_load.c:71:
   /usr/include/libelf.h:45:2: #error "large files are not supported by libelf"
   *** Error code 1
   make: Fatal error: Command failed for target `dyn_load.lo '. 
and 
 
   Undefined                       first referenced
    symbol                             in file
   GC_local_malloc                     ./.libs/libmonoruntime.a(reflection.o)
   GC_local_malloc_atomic              ./.libs/libmonoruntime.a(object.o)
   GC_local_gcj_fast_malloc            ./.libs/libmonoruntime.a(object.o)
   GC_local_gcj_malloc                 ./.libs/libmonoruntime.a(object.o)
   ld: fatal: Symbol referencing errors. No output written to pedump
you also need to make some modification of the source code. Here is the patch for mono 
 
When you do "gmake check", it always fails at: 
 
   Test run: image=[path_to_mono_source]/mono/mini/exceptions.exe, opts=
I just ignored it. 
 
After you have installed mono, remember to add [dist_dir]/lib/pkgconfig to your $PKG_CONFIG_PATH to make sure all the packages depend on Mono can find it. 
 
6 Applications 
7 Problem need to be noticed when build mono with SUN Studio 
8 Usefull resources
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值