唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

clangを使ってみた

LinuxでのC/C++コンパイラといえばgcc/g++でしたが、最近clang/clang++というコンパイラのエラーメッセージがわかりやすいという話をよく見かけるので試してみました。

インストール

主に以下の公式サイト通りにやります。

configureだけは以下のページを参考にしました。

メイク時間は研究室の性能の良いPCで1時間ぐらい.
build/Release/binにclangやclang++ができています。

svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang

cd ../projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt

cd ../..
mkdir build
cd build
../llvm/configure --enable-optimized --enable-assertions=no --enable-targets=host-only
make

使ってみる

clang++はg++と同様に使うことができます。
試しにHello Worldを書いてコンパイルしてみました。
coutをcountとタイプミスしていたので以下の様なメッセージが表示されました。

test.cpp:4:10: error: no member named 'count' in namespace 'std'; did you mean 'cout'?
    std::count << "Hello World!";
    ~~~~~^~~~~
         cout
/usr/lib/gcc/x86_64-linux-gnu/4.4/../../../../include/c++/4.4/iostream:58:18: note: 'cout' declared here
  extern ostream cout;          ///< Linked to standard output
                 ^
1 error generated.

countではなくcoutではないですか?というメッセージが表示されており、g++よりもわかりやすくなっていて嬉しいです.