尝试在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来获取源代码.它将自动为您获取每个依赖项的正确版本,并使您以后更容易更新到新版本和/或进行本地更改.

相关文章
相关标签/搜索