2013年11月24日日曜日

Ubuntu 13.10とclang3.3

お久しぶりです。
個人的にいろいろ変化があって、記事を投稿出来る時間がありませんでした。

さて、Ubuntu13.10が10月にリリースされて一応アップデートだけはしていたんですが、
なかなか触る時間もなくて放置していました。

Ubuntu13.10ではgccも4.8.1になって以前書いた記事のように自分で関連ライブラリのビルド後に本体のビルドをして半日が潰れるみたいなことしなくても良くなりました。

clangはデフォルトでは3.2.7が用意されているようでこれも

sudo apt-get install clang

というコマンド一発でインストールOKです。

ところで、Ubuntu13.10にはclang-3.3というパッケージも用意されているようです。
試しにインストールしてみました。

$sudo apt-get remove clang
$sudo apt-get install clang-3.3

自分の作ったとあるソースをコンパイルしてみます。

$ clang++ test.cc -std=c++11 -O3 -o test_cl
In file included from test.cc:1:
In file included from /usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/algorithm:60:
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/utility:68:10: fatal error:
      'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^
1 error generated.

あれ、clang3.2.7ではコンパイル出来たプログラムがエラーになる!


この現象をググった所、


という所で同じような現象が話されています。
2013年9月頃の投稿ですね。

斜め読みするとどうやら最新のclang3.3では修正された様ですが、Ubuntuが取り込んだものではまだ残っている様ですね。

せっかくパッケージになって楽になったのにこういうのが残っているので自分でコンパイルしなくちゃいけないようです。