Windows上で.NET CoreのCoreCLRをビルドしてみた。
Windows以外でUbuntu上などでビルドするのは難しくないようだ。
→ 連載:「○○してみた」日記:CoreCLRをビルドしてみた
コンパイラのclangとCMakeというビルドツールがあればすんなりビルドできるようだ。
(ただし、mscorlib.dllが生成できないみたいだが)
Windows上でビルドするのを試してみた。
公式だと英語の情報だけど、以下のドキュメントに方法が書いてある。
→ Build CoreCLR on Windows
Visual Studio 2015と、CMake、Python、Git、Powershell 3.0以上、が必要だと書いてある。
(あと、testをビルドするには、DotNet Core SDKも必要とある)
自分の場合、
・Visual Studio 2015
・CMake 3.7.1
・Python 2.7.9
・git 2.7.1
・PowerShell 2.0 (Windows7に最初から入っていた物?)
を使った。
環境変数PATHを書き換えて、cmd.exeやPowershellで上記のものをコマンドラインで使えるようにしておく。
ソースコードはgithubから持ってくる。
https://github.com/dotnet/coreclr
ディレクトリが複数に分かれているが、一番上の階層で作業する。
build.cmdというPowershell用のスクリプトがあるので、Powershellで起動する。
.\build
あとは、自動でビルドされた。だいぶ時間が掛かった。
特に統合環境のコンパイラは立ち上げたりしなくて、コマンドラインでコンパイラが動作したようだ。
ビルドされた生成物は、binというディレクトリの中のproductというディレクトリ内にある。
64bit版のWindows7で実行したからなのか、64bitの実行ファイルが生成された。
32bit版のWindows7では生成された実行ファイルは当然だけど動かなかった。
(追記 – build.cmdの中の生成するバイナリを定義している部分 X64 を X86 に一箇所書き換えることで32bit版のバイナリを生成することができた)
—
ilasm.exeの実行ファイルのみが欲しかったのだけど、結局全体をビルドした。
最初は、ソースコードのsrcディレクトリ内のilasmとildasmディレクトリのみを取り出して、ビルドしようと試みたのだがうまくいかなかった。
参照されているライブラリやヘッダファイルなどもコピーしてみたが、どうもうまくいかない。
CMake用のファイル「CMakeLists.txt」を参考に自前でMakefileを書いたりしてみたが、これも駄目だった。