21:00UbuntuでC/C++のコンパイラである、Clangをビルドしてインストールする方法についてまとめました。概要C言語やC++の有名なコンパイラには、GCCがありますが、最近はClangというフロントエンドコンパイラが注目を浴びています。これは、コンパイラという名前ではなくフロントエンドコンパイラという名前からもわかるように、Clangはあくまでも、コンパイラの機能のうちフロントエンドの部分を担当しており、バックエンドの部分はLLVMというバックエンドコンパイラが担当しています。今回は、このClangとLLVMをソースコードからビルドしてインストールします。ビルド方法それぞれ、複数の場所から複数のソースコードを取得します。ソースコードの取得には、Subversionを使うので、下記のコマンドを入力して、Subversionをインストールしておいてください。subversionその他にも、ビルドにはいくつかのパッケージが必要となります。下記のコマンドを入力して、パッケージをインストールします。zlib1g-devでは、ソースコードを取得します。最初に、LLVMのソースコードを取得します。llvm今回は、llvmというディレクトの中に、今後取得するファイルを入れていきます。次に、Clangのソースコードを取得します。ToolsというClangの便利な機能を追加するソースコードを取得します。これを追加するかは任意なので、いらないという場合はこの作業はやらないでください。../../../..最後に、ランタイムライブラリのソースコードを取得します。../..これで、すべてのソースコードを取得できたので、ビルドをします。今回、ビルドは、buildというllvmディレクトリの外にあるディレクトリで行います。ビルドには、最初にcmakeを使ってmakefileを作成してからmakeコマンドを実行します。-DCMAKE_BUILD_TYPE=Releasecmakeの実行時に、いくつかのオプションをつけています。Makefiles"は、UnixまたはLinuxの環境であることを示しています。../llvmは、取得したソースコードの場所の指定です。-DCMAKE_INSTALL_PREFIXは、インストール場所の指定です。ここの指定をしない場合は、/usr/localになります。-DCMAKE_BUILD_TYPEは、ビルド時のタイプの指定です。指定をしないとDebugになります。今回はReleaseにしました。これで、ビルドの準備ができました。ビルドは、makeコマンドを使います。-j2オプションの-jは、並行ビルドの設定です。これをうまく設定しておくとビルドが早く終わります。数字は、いくつ並行してビルドするのかを指定します。CPUのコア数+1を指定するのがビルドが高速に終わり良いと言われているようです。私の場合は、CPUのコア数が1つだったので、2にしました。ビルドが終了したら、インストールをします。install環境によっては、コマンドにsudoをつける必要があると思います。これで、インストールは終了です。後は、環境設定が終われば、C言語のソースコードをコンパイルする場合はclang、C++のソースコードをコンパイルする場合はclang++で、できるようになります。さいごにビルドに結構の時間がかかったので、時間があるときにやったほうがいいです。