在Ubuntu上编译mono-2.6(或更高版本)?

3
我需要从源代码构建mono,因为badgerports的Ubuntu软件包已过时(不支持.Net 4.0)。
到目前为止,我已经完成了以下步骤(大部分是根据这里的说明完成的):
  1. 克隆了mono git仓库
  2. 切换到标记为2.6的分支(git checkout mono-2-6)
  3. 在我的机器上安装了最小的mono,以便使mono和mcs可用于机器
  4. 运行./autogen.sh --prefix=/usr/local
  5. 运行make
在几个模块正确编译之后,我遇到了这个错误:
make[4]: Entering directory `/home/oompah/work/dev/mono/mono/mini'
CC  mini.lo
CC  liveness.lo
liveness.c: In function ‘mono_liveness_handle_exception_clauses’:
liveness.c:137: error: ‘MonoCompile’ has no member named ‘header’
make[4]: *** [liveness.lo] Error 1
make[4]: Leaving directory `/home/oompah/work/dev/mono/mono/mini'
make[3]: *** [all] Error 2

我已经查看了有问题的代码,确实访问了一个头部成员...

void
mono_liveness_handle_exception_clauses (MonoCompile *cfg)
{
        MonoBasicBlock *bb;
        GSList *visited = NULL;
        MonoMethodHeader *header = cfg->header;

        ...
}

有人在Ubuntu上成功构建了mono-2.6(或更高版本)吗?

1
为什么你要尝试编译2.6,如果你需要.NET 4.0支持?为此,你需要使用_master_或2.10。 - skolima
2个回答

1

改进后的脚本在构建过程中中途崩溃了。第一个脚本构建了一个“并行安装”,而且构建monodevelop非常困难。最终,我放弃了这两个脚本,并从mono的tarball上构建了它们。但是我仍然会接受你的答案,因为它让我找到了正确的方向(我查看了脚本正在做/尝试做什么)。 - oompahloompah

0

Joe Shields正在打包Mono 2.10,并将所有内容修补为在Ubuntu上默认使用.NET 4.0,您可能想在Twitter上联系他@directhex。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接