紧急求助:请问如何编译Mono呀?

MS_Frank 2009-04-21 05:59:43
应公司要求,要修改System.Web.dll,现我已装整个Mono项目下载下来了(近2G,好大啊);我已修改完代码。
但是我不知道如何编译呀?整个项目里面有好多*.sln和*.csproj文件,但有的打不开,有的能打开却不能编译。

同时我发现很多目录下都有Makefile文件(我知道这也是用于编译项目用的),可是我在Linux下用make命令编译老是出错。
Windows下更不行了!

以下是部分Makefile的代码:

=========================================================
thisdir = class/System.Web
SUBDIRS = Test
include ../../build/rules.make

LIBRARY = System.Web.dll

ifeq (net_2_0, $(PROFILE))

LIBRARY_USE_INTERMEDIATE_FILE = yes

# Because System.Web.dll and System.Web.Services.dll have a cyclic dependency, we need a two-pass build.
# 1st pass - build System.Web.dll without System.Web.Services.dll reference
# 2nd pass - build System.Web.dll with System.Web.Services.dll reference

WEBSERVICES_DEP := System.Web.Services.dll
WEBSERVICES_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(WEBSERVICES_DEP))
MONOWEB_DEP := Mono.Web.dll
MONOWEB_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(MONOWEB_DEP))
ifndef NO_SYSTEMCORE_DEP
SYSTEMCORE_DEP := System.Core.dll
SYSTEMCORE_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(SYSTEMCORE_DEP))
endif
CYCLIC_DEPS := $(WEBSERVICES_DEP) $(MONOWEB_DEP)
CYCLIC_DEP_FILES := $(WEBSERVICES_DEP_FILE) $(MONOWEB_DEP_FILE)
endif

RESOURCE_FILES_1= \
resources/WebUIValidation.js

RESOURCE_FILES_2 = \
resources/folder.gif \
resources/file.gif \
....//其它略
=============================================================

在SUSE Linux下make命令

make[1]: Entering directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test'
make[2]: Entering directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test/TestMonoWeb'
make all-local
make[3]: Entering directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test/TestMonoWeb'
make[3]: Nothing to be done for `all-local'.
make[3]: Leaving directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test/TestMonoWeb'
make[2]: Leaving directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test/TestMonoWeb'
make all-local
make[2]: Entering directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test'
make[2]: Nothing to be done for `all-local'.
make[2]: Leaving directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test'
make[1]: Leaving directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web/Test'
make all-local
make[1]: Entering directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web'
MONO_PATH="./../../class/lib/net_2_0::$MONO_PATH" false --debug ./../../class/lib/net_1_1_bootstrap/culevel.exe -o System.Web/UplevelHelper.cs UplevelHelperDefinitions.xml
make[1]: *** [System.Web/UplevelHelper.cs] Error 1
make[1]: Leaving directory `/mnt/hgfs/MonoProbj/mcs/class/System.Web'
make: *** [do-all] Error 2


在Windows下就是语法错误!!

请问如何解决呀?怎么才可以编译过去呢?
...全文
312 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MS_Frank 2009-05-01
  • 打赏
  • 举报
回复
算了,结了。
MS_Frank 2009-04-23
  • 打赏
  • 举报
回复
但是怎么编译呢?
Steve 2009-04-22
  • 打赏
  • 举报
回复
mono-build-win32.sh就是为windows准备的,如果没发执行把GNU的库装上
或者安装Cygwin.
MS_Frank 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 runffer_yang 的回复:]
你下载的包里没有mono-build-w32.sh 这个吗?是在windows下编译用的脚本.
[/Quote]

mono-build-w32.sh 是有,可里面的代码是SHELL脚本,在WINDOWS下能执行?
Ricercar 2009-04-22
  • 打赏
  • 举报
回复
感觉在windows不需要编译mono的CLR,直接用微软的编译器编译库就行了
Steve 2009-04-21
  • 打赏
  • 举报
回复
你下载的包里没有mono-build-w32.sh 这个吗?是在windows下编译用的脚本.
Steve 2009-04-21
  • 打赏
  • 举报
回复
代码主要是Linux的,Windows下用Mono?VS不行吗?
Windows下装cygwin大概也可以用Linux的命令.
MS_Frank 2009-04-21
  • 打赏
  • 举报
回复
老大,你这段代码很高深,小弟初学LINUX。

你这段代码是在LINUX上编译的吗?还是要在WINDOWS上编译呀?

我只想重新编译 类库。
Steve 2009-04-21
  • 打赏
  • 举报
回复
1)从脚本编译
Linux:
mono-build.sh
Win32:
mono-build-w32.sh

2)从源码编译
首先系统应该安装好glib 2.x 和 pkg-config

tar xzvf mono-X.XX.tar.gz
cd mono-X.XX
./configure --prefix=/usr/local
make
make install
想重新编译类库的话:
tar xzvf mcs-X.XX.tar.gz
./configure --profile=atomic [--prefix=/usr/local]
make

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧