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++よりもわかりやすくなっていて嬉しいです.