尝试在CentOS 6.2上编译Mono 3.0.2时出错

我正在尝试从 GitHub的Mono repo的tarball编译Mono 3.0.2.
但是当我进入mcs文件夹时,编译失败:
if test -w /root/mono/mcs; then :; else chmod -R +w /root/mono/mcs; fi
    cd /root/mono/mcs && make --no-print-directory -s NO_DIR_CHECK=1 PROFILES=' net_2_0            net_3_5 net_4_0 net_4_5  ' CC='gcc' all-profiles
    Bootstrap compiler: Mono C# compiler version 3.0.3.0
    Makefile:43: warning: overriding commands for target 'csproj-local'
../build/executable.make:149: warning: ignoring old commands for target 'csproj-local'
    Makefile:43: warning: overriding commands for target 'csproj-local'
../build/executable.make:149: warning: ignoring old commands for target 'csproj-local'
    make[7]: *** No rule to make target '../../external/ikvm/reflect/*.cs',needed by '../class/lib/basic/basic.exe'.  Stop.
    make[6]: *** [do-all] Error 2
    make[5]: *** [all-recursive] Error 1
    make[4]: *** [profile-do--basic--all] Error 2
    make[3]: *** [profiles-do--all] Error 2
    make[2]: *** [all-local] Error 2
    make[2]: Leaving directory '/root/mono/runtime'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/root/mono'
    make: *** [all] Error 2

我已经尝试通过make get-monolite-latest安装monolite并且已经尝试安装2.x版本然后编译.这些解决方案都不起作用.
我对3.0.2版本的兴趣是新的Razor模板引擎和MVC 4框架,但是,如果没有可能为CentOS 6编译/安装或二进制包,我会很感激使用以前版本的存储库.

外部/子目录包含使用所谓的 git submodules的外部依赖项.

如果从tarball编译时遇到任何与这些目录中的丢失文件相关的错误,那么我的猜测是,用于创建此tarball的任何脚本都会被破坏,并且不包含任何这些依赖项.

如果你直接从github获得了你的源代码,那么你需要运行git submodule init和git submodule update.

理论上,您可以通过查看.gitmodules文件从github下载每个子模块.

但是,git会在每个主模块的提交中记录每个子模块的特定修订版本.因此,如果您在单声道中签出一些特定的提交并使用git子模块更新,那么您将获得提交作者在进行提交时使用的每个模块的完全相同的修订版本.

如果你想从源代码编译,我建议只使用git来获取源代码.它将自动为您获取每个依赖项的正确版本,并使您以后更容易更新到新版本和/或进行本地更改.

相关文章

文章浏览阅读903次。4.清除缓存目录(/var/cache/yum)下的软件...
文章浏览阅读1.5k次。Python 是一种高级解释性编程语言,已被...
文章浏览阅读2.6k次。打开终端或控制台,以root或具有sudo权...
文章浏览阅读744次,点赞24次,收藏26次。目标:通过AppSrv为...
文章浏览阅读1.1w次,点赞8次,收藏26次。chmod命令来自于英...
文章浏览阅读1.2k次。yum源的URL地址,本例中是文件系统的路...