ラベル ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル ubuntu の投稿を表示しています。 すべての投稿を表示

2013年7月19日金曜日

clang 3.3 Ubuntu12.10へインストール

前回の日記
clangのインストール
で中断したclangのインストールをまたやってみました。

日本の諺に「急がば回れ」というのがありますが、今回は正攻法にソースをダウンロードしてビルドするという方法で行いました。パッケージのインストールはどこかの誰かがビルドしてくれたものをインストールする訳なのですが、微妙に違っただけでも出来ないことがあるので、やはりこの方法がいいのかなと思いました。

参考にしたのはこのブログです。
[C++11対応記念] clang/LLVMのインストールとGMPを使って円周率ベンチ。

ダウンロードしてきたのはこの3つです。
llvm-3.3.src.tar.gz LLVM source code
cfe-3.3.src.tar.gz Clang source code
compiler-rt-3.3.src.tar.gz Compiler RT source code

適当にllvmというディレクトリを作ってその中にllvm-3.3.src.tar.gzを展開します。
その展開したディレクトリ中のllvm/toolsにcfe-3.3.src.tar.gzを展開します。
このとき
mv cfe-3.3.src clang
とディレクトリ名を変えてやりました。

同じようにprojectsの下にcompiler-rt-3.3.src.tar.gzを展開します。
また
mv compiler-rt-3.3.src compiler-rt
と名前を変えてやりました。

llvm
tools
clang
projects
compiler-rt

という感じです。


以上の準備をしてから次のコマンドを順番にやりました。
./configure --enable-optimized --enable-jit
make
make check
make install
と言っても初心者なので何度か失敗しました。

gccより体感でインストール作業が半分か3分の1の時間で終わった感じです。
gccのコンパイル時には大量のワーニングが出たのですが、clangはそうでもなかったです。

これからgccとclangでコンパイルして比べてみたいと思います。

追記
ビルドに使ったディレクトリのものとインストールされたものでサイズ、時間が何故か違います。

62121304  7月 19 14:00 ~/llvm/llvm-3.3.src/Release+Asserts/bin/clang
51831756  7月 19 15:10 /usr/local/bin/clang

2013年7月17日水曜日

clangのインストール

Ubuntu12.10が手元の環境なんですが、これがLTSでない影響があるみたいです。
clangをインストールしようとしたいのですが、ソースからコンパイルするのはあまりにも時間がかかるし出来たら避けたいです。

UbuntuにCLANGをインストールする

これが一番簡単な方法なのでしょうが、これインストール出来るclangはバージョンがやや古い様です。

%sudo apt-get install clang
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libgc1c2 linux-headers-3.5.0-17 linux-headers-3.5.0-17-generic
これを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
  binfmt-support cpp-4.6 g++-4.6 gcc-4.6 gcc-4.6-base libclang-common-dev libffi-dev libllvm3.0
  libstdc++6-4.6-dev llvm-3.0 llvm-3.0-dev llvm-3.0-runtime
提案パッケージ:
  gcc-4.6-locales g++-4.6-multilib gcc-4.6-doc libstdc++6-4.6-dbg gcc-4.6-multilib
  libmudflap0-4.6-dev libgcc1-dbg libgomp1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold
  libstdc++6-4.6-doc llvm-3.0-doc
以下のパッケージが新たにインストールされます:
  binfmt-support clang cpp-4.6 g++-4.6 gcc-4.6 gcc-4.6-base libclang-common-dev libffi-dev
  libllvm3.0 libstdc++6-4.6-dev llvm-3.0 llvm-3.0-dev llvm-3.0-runtime
アップグレード: 0 個、新規インストール: 13 個、 削除: 0 個、保留: 407 個。
48.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 134 MB のディスク容量が消費されます。
続行しますか [Y/n]? n
中断しました。

gcc4.8.1がはいった環境にいまさらgcc4.6とclang3.0を入れるのもどうかと思い、インストールを中断しました。

Ubuntu 12.04LTSに clang 3.3インストール

sudo apt-get install clang-3.3 clang-3.3-doc libclang
-common-dev libclang-dev libclang1 libclang1-dbg libllvm-3.3-ocaml-dev libllvm3.3 libllvm3.3-dbg lld
b-3.3 llvm-3.3 llvm-3.3-dev llvm-3.3-doc llvm-3.3-examples llvm-3.3-runtime
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 clang-3.3 : 依存: libclang-common-dev (= 1:3.3~svn181304-1~exp1) しかし、1:3.4~svn182727-1~exp1 は インストールされようとしています
 libclang-common-dev : 依存: libllvm3.4 (= 1:3.4~svn182727-1~exp1) しかし、1:3.4~svn186465-1~exp1 はインストールされようとしています
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。


やはりclang3.3を入れたいところなのですが、Ubuntu12.10と12.04の違いなのかエラーとなり入れられませんでした。

12.04を作り直すのもものすごく手間がかかるし、今回はインストールは中断しました。
はやく簡単にインストール出来るようにならないかなー。