2012-12-13 13 views
6

GitHubのMono repoのtarballからMono 3.0.2をコンパイルしようとしています。 しかし、私はmcsフォルダに取得するときに、コンパイルは失敗します。CentOS 6.2でMono 3.0.2をコンパイルしようとするとエラーが発生する

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 Template EngineとMVC 4フレームワークですが、CentOS 6のコンパイル/インストールやバイナリパッケージがない場合は、以前のバージョンのリポジトリに感謝します。

答えて

10

external/サブディレクトリには、いわゆるgit submodulesを使用する外部依存関係が含まれています。

tarballからコンパイルするときにこれらのディレクトリのいずれかにファイルが見つからなかった場合は、このtarballを作成するために使用されるスクリプトはすべて壊れており、これらの依存関係は含まれていないと考えられます。

ソースがgithubから直接得られた場合は、git submodule initgit submodule updateを実行する必要があります。

理論的には、.gitmodulesファイルを見れば、githubからこれらのサブモジュールをそれぞれダウンロードできます。

しかし、gitは各メインモジュールのコミットに各サブモジュールの特定のリビジョンを記録します。したがって、特定のコミットをモノでチェックアウトしてgit submodule updateを使用すると、コミットを行ったときにコミットの作者が使用していたモジュールと全く同じリビジョンが得られます。

ソースからコンパイルする場合は、gitを使用してソースを取得することをお勧めします。自動的にそれぞれの依存関係の正しいバージョンが取得され、後で新しいバージョンに更新したり、ローカルで変更したりするのが容易になります。

+0

うまくいきました。どうもありがとうございました! –

+0

ありがとうございました最新版(3.1.2) –

+0

を参考にしてくれてありがとうGitHubリポジトリのリリースタブのmono-4.3.2.467 tarballは、壊れているリリースの1つです。 >。< –