meryngii.neta

今日も新たな"ネタ"を求めて。

GCC 4.6.1をUbuntu 11.04でmake

C++0xの機能を試すためにGCC 4.6が欲しいのだが、UbuntuにはGCC 4.5のパッケージしか用意されていない。こういう時はソースを落としてきてコンパイルすればよい。
GCCコンパイルには数学関連のライブラリが必要で、それらを先にコンパイルしてインストールしてもよい。しかしmake installするとアンインストールできない事態に陥る。基本的にAPTで全部管理させたいので調べたところ、lib*-devをインストールすればよいことが分かった。

sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev

で、あとはhttp://gcc.gnu.org/mirrors.htmlからソースを落としてきてmakeするだけと思いきや、

tar xvf gcc-4.6.1.tar.bz2
cd gcc-4.6.1
./configure
make

"asm/errno.h"が見つからないとかいうエラーが出る。最近のUbuntuで生じる問題らしい。
http://am112705.blog.so-net.ne.jp/2011-05-01
とりあえずシンボリックリンクを張る。

sudo ln -s /usr/include/asm-generic /usr/include/asm
make

make成功。
ここでmake installするとアンインストールできなくなる。そこで自動的にパッケージを生成してくれるCheckInstallを試したのだが、途中でエラーを吐いて上手くいかない。代わりに試したpacoは使いにくかったので、結局普通にmake installすることになった。

sudo make install
gcc -v

GCC 4.6.1となれば終了。すぐ終わるかと思ったが意外と手間取った。