ルギア君の戯言

雑多な記事。

番外編 GCC をビルドしよう!

結果的に完全な GCC のインストールを紹介することになってしまいましたか。
まあ、成功したんだから、そのことを知らせる意義はあるか。
今回は i686-Linux 用の GCC をビルドします。
ロスコンパイラのコンパイル方法は次で紹介します。


Linuxから目覚めるぼくらのゲームボーイ!

Linuxから目覚めるぼくらのゲームボーイ!


を参考にさせていただきました(ぇ

必要なもの

一応現時点での最新バージョンで解説します。


まずは binutils をインストールします。
最後にパスを通してあげます。(でないと gcc がコンパイルできない)

$ wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.gz
$ tar zxvf binutils-2.18.tar.gz
$ cd binutils-2.18
$ mkdir build_686
$ ../configure --prefix=/usr/local/gnu
$ make
$ sudo make install
$ export PATH=/usr/local/gnu/bin:$PATH

以外とかかります。*1


次に gcc をインストールします。
今回はこの勉強会用に、C と C++ 言語をインストールします。

$ wget ftp://core.ring.gr.jp/pub/GNU/gcc/gcc-4.2.2/gcc-core-4.2.2.tar.bz2
$ wget ftp://core.ring.gr.jp/pub/GNU/gcc/gcc-4.2.2/gcc-g++-4.2.2.tar.bz2
$ tar xvfj gcc-core-4.2.2.tar.bz2
$ tar xvfj gcc-g++-4.2.2.tar.bz2
$ cd gcc-4.2.2
$ mkdir build_686
$ cd build_686
$ ../configure --enable-languages=c,c++ \
> --prefix=/usr/local/gnu \
> --disable-bootstrap
$ make
$ sudo make install

この場合はネイティブのビルドですが、メインで使うわけではないので、bootstrap は思い切ってオフにしてしまいました。
(オンだと比較エラーになる)


とてつもなく長いです。根気よく待ちましょう。
他の作業をするという手もありかも。


おわったら

$ i686-pc-linux-gnu-gcc -v

を実行してみてください。
ちゃんとバージョン 4.2.2 になってますか?


このコマンド名は長いので、gcc-linux とかからシンボリックリンクを張ってしまいましょう。

$ cd /usr/local/gnu/bin
$ ln -s i686-pc-linux-gnu-gcc gcc-linux

もとから入っている gcc を実行できなくなってもいいのなら、gcc にしちゃっても問題ないです。ただし、こっちが先に探されるようにしておいてくださいね。

*1:参考書だと tar のオプションが xvfj になってた