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

Gab*_*ino 6 mono centos

我正在尝试从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
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*lig 10

external/子目录包含了使用所谓的外部依赖git的子模块.

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

如果你直接从github获得你的资源,那么你需要运行git submodule initgit submodule update.

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

但是,git会在每个主模块的提交中记录每个子模块的特定修订版本.因此,如果您以单声道和使用方式检出某些特定提交git submodule update,您将获得提交作者在进行提交时使用的每个模块的完全相同的修订版本.

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