単子葉類プログラマーのメモ

プログラミング関連の自分用メモだけど他の人の役に立つかもしれないので公開しておく感じのブログ

Windows環境のLLVM(Ver9.0.0)セットアップ手順

Windows環境でLLVMVer9.0.0)をコンパイルして実行するまでにつまづいた点がいくつかあったので忘れないようにメモ。

Ver10.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の動作に必要

ビルド手順

  1. LLVMソースコードを適当なフォルダに展開
  2. CMake GUIを起動し、Where is the source codeフォルダにLLVMを展開したフォルダを、‘Where to build the binaries‘に任意の出力先フォルダを指定。
  3. Configure、Generateの順に実行。
    (Configure時、いろいろと赤いものが出力されるが、最後にsuccessとかConfiguring doneと表示されたならたぶん気にしなくてOK)
  4. Generateも完了したら出力先フォルダに出力されたslnファイルをダブルクリックしてVisual Studioを起動。
  5. Releaseプロジェクトを選んでソリューションのビルド
  6. 待つ
  7. 待つ
  8. Releaseフォルダにバイナリが生成される。適宜、適当なフォルダに移動しPATHを通す。

LLVM IRのコンパイル手順

  1. 適当なLLVM IRファイル(拡張子.ll)を用意
  2. llvm-as foo.llコンパイル
    • ビットコードファイルfoo.bcが生成される

実行方法

インタープリタで実行する場合

lli foo.bc

exeファイル化してから実行する場合

Visual Studioのリンカーを使う。

  1. llc -filetype=obj foo.bcでobjファイルを生成
  2. Windowsのスタートメニューからx64 Native Tools Command Prompt for VS 2017を起動
  3. objファイルがあるフォルダにcd
  4. link foo.obj -defaultlib:libcmtを実行してexeファイルを生成
  5. 生成されたexeファイルを実行