Ubuntu上で.NET CoreのCoreCLRをビルドしてみた。
このあたりの記事を参考にした。
→ 連載:「○○してみた」日記:CoreCLRをビルドしてみた
gitを使ってCoreCLRのソースコードをローカルに持ってくる。
git clone https://github.com/dotnet/coreclr
ビルドに必要なコンパイラやツールやライブラリをインストールする。
sudo apt-get install cmake llvm-3.5 clang-3.5 lldb-3.6 lldb-3.6-dev libunwind8 libunwind8-dev
上記の記事だと、これだけだったのだが、自分がやったときにはライブラリliblttng-ust-devが不足していたので、これも入れた。
sudo apt-get install liblttng-ust-dev
ビルドは、build.shというシェルスクリプトを使う。
(ライブラリが足りなかったりして失敗した場合、ライブラリのインストール後に一度clean.shというスクリプトで掃除をしてから、再度build.shを動かすこと。)
かなり時間が掛かるが、無事ビルドできた。
bin/Product/Linux.x64.Debug/というディレクトリー内に実行ファイルなどが作られる。
(上記の記事ではmscorelib.dllが生成できないと書いてあったが、今はもう解決されているみたいで、ちゃんと生成されていた)
ilasmを試してみたが、無事動かすことができた。
ilasmで生成したexeファイルをchmodコマンドで実行属性をつけて実行することができた。
しかし、corerunコマンドがうまく動かず、
coreclr_initialize failedというエラーを表示して止まってしまう。
何か間違えているのだろうか?