Windows環境でLLVM(Ver9.0.0)をコンパイルして実行するまでにつまづいた点がいくつかあったので忘れないようにメモ。
目次
つまづいた点
LLVM Download Pageから9.0.0のインストーラ(LLVM-9.0.0-win64.exe)をダウンロードしてインストールしたが、LLVM IRをコンパイルするためのllvm-asコマンドが含まれていなかった。他にもいろいろ足りないものがあった。
(逆にLLVMというファイル名だったにも関わらずClang系のバイナリは含まれていた。Clangに必要なものしか含まれていない?)
成功した方法
LLVM Download Pageからソースコード(LLVM source code)をダウンロードして、公式ドキュメントを参考にしてビルドした。
(この場合、インストーラとは逆にClangが含まれていない。)
ビルドに必要なツール
ツール | 説明 |
---|---|
Microsoft Visual Studio C++ 2017以上 | LLVMのビルドに使用 |
CMake | Visual Studo用のslnファイルの生成に使用 |
Python 2.7以上 | CMakeの動作に必要 |
ビルド手順
- LLVMのソースコードを適当なフォルダに展開
- CMake GUIを起動し、
Where is the source code
フォルダにLLVMを展開したフォルダを、‘Where to build the binaries‘に任意の出力先フォルダを指定。 - Configure、Generateの順に実行。
(Configure時、いろいろと赤いものが出力されるが、最後にsuccessとかConfiguring doneと表示されたならたぶん気にしなくてOK) - Generateも完了したら出力先フォルダに出力されたslnファイルをダブルクリックしてVisual Studioを起動。
Release
プロジェクトを選んでソリューションのビルド
- 待つ
- 待つ
- Releaseフォルダにバイナリが生成される。適宜、適当なフォルダに移動しPATHを通す。
LLVM IRのコンパイル手順
実行方法
インタープリタで実行する場合
lli foo.bc
exeファイル化してから実行する場合
Visual Studioのリンカーを使う。
llc -filetype=obj foo.bc
でobjファイルを生成- Windowsのスタートメニューから
x64 Native Tools Command Prompt for VS 2017
を起動 - objファイルがあるフォルダに
cd
link foo.obj -defaultlib:libcmt
を実行してexeファイルを生成- 生成されたexeファイルを実行