Help us understand the problem. What is going on with this article?

gcc4.9.2 をインストールする

More than 5 years have passed since last update.

gcc 4.4.7 から gcc4.9.2 にバージョンアップした覚書

動機

io.js をやりたかったのに、gcc4.4.7 じゃだめって言われたのでいっそ 4.9.2 にしようと思い立ったから.

参考 URL

須良さんの記事のバージョン変更版です.
ありがとうは須良さんへ.
http://s243k.blog65.fc2.com/blog-entry-486.html

手順

必要なものをインストールします.

$ sudo yum install gcc gcc-c++ glibc-devel.x86_64 glibc-devel.i.686

実行時パスを設定します.

$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
$ export LD_RUN_PATH=/usr/local/lib:$LD_RUN_PATH

共有ライブラリを設定します.

vi /etc/ld.so.conf

以下を記載してください

include ld.so.conf.d/*.conf
/usr/local/lib # 新規追加

GMP をインストールします.

https://gmplib.org/

GMP は任意精度算術ライブラリです.

$ mkdir ~/gcc-install; cd ~/gcc-install; mkdir gmp; cd gmp
$ wget ftp://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz
$ tar xvf gmp-6.0.0a.tar.xz
$ cd gmp-6.0.0
$ mkdir build; cd build
$ ../configure --enable-cxx && make -s -j2 && make check -s -j2 && sudo make install

mpfr をインストールします.

http://www.mpfr.org/

MPFR は高精度浮動小数点算術ライブラリです.

$ cd ~/gcc-install; mkdir mpfr; cd mpfr
$ wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.gz
$ tar xvzf mpfr-3.1.2.tar.gz
$ cd mpfr-3.1.2
$ mkdir build; cd build
$ ../configure && make -s -j2 && make check -s -j2 && sudo make install

mpc をインストールします.

http://www.multiprecision.org/

MPC は複素数算術ライブラリです. (MPFR と GMP に依存している模様)

$ cd ~/gcc-install; mkdir mpc; cd mpc
$ wget http://www.multiprecision.org/mpc/download/mpc-1.0.2.tar.gz
$ tar xvzf mpc-1.0.2.tar.gz
$ cd mpc-1.0.2
$ mkdir build; cd build
$ ../configure && make -s -j2 && make check -s -j2 && sudo make install

isl をインストールします.

http://isl.gforge.inria.fr/

ISL は Integer Set Library と言い、線形制約条件で囲まれた整数点の関係を操作するライブラリだそうです. (正直よくわかりません)

バージョンは 0.12.2 でインストールしてますが、確か 0.14 でインストールした記憶も…うーん….

$ cd ~/gcc-install; mkdir isl; cd isl
$ wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
$ tar xvf isl-0.12.2.tar.bz2
$ cd isl-0.12.2
$ mkdir build; cd build
$ ../configure && make -s -j2 && make check -s -j2 && sudo make install

一部環境では以下のようにする必要があるそうです。(ご指摘ありがとうございました!)

  • mac yosemite の場合
$ cd ~/gcc-install; mkdir isl; cd isl
$ wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
$ tar xvf isl-0.12.2.tar.bz2
$ cd isl-0.12.2
$ mkdir build; cd build
$ "../configure --with-gmp=build --with-gmp-builddir=/Users/hoge/bin/" && make -s -j2 && make check -s -j2 && sudo make install

CLooG をインストールします.

http://www.cloog.org/

CLooG はコンパイラの最適化の為のライブラリおよびフリーソフトウェアです.

$ cd ~/gcc-install; mkdir cloog; cd cloog
$ wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
$ tar xvzf cloog-0.18.1.tar.gz
$ cd cloog-0.18.1
$ mkdir build; cd build
$ ../configure && make -s -j2 && make check -s -j2 && sudo make install

一部環境では以下のようにする必要があるそうです。(ご指摘ありがとうございました!)

  • mac yosemite の場合
$ cd ~/gcc-install; mkdir cloog; cd cloog
$ wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
$ tar xvzf cloog-0.18.1.tar.gz
$ cd cloog-0.18.1
$ mkdir build; cd build
$ ../configure --with-gmp=build --with-gmp-builddir=/Users/hoge/bin/ && make -s -j2 && make check -s -j2 && sudo make install

やっと gcc をインストールします.

https://www.gnu.org/software/gcc/

いわずもがなですね、今回の目的です.

$ cd ~/gcc-install
$ mkdir gcc4.9.2; cd gcc4.9.2
$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.2/gcc-4.9.2.tar.gz
$ tar xvzf gcc-4.9.2.tar.gz
$ cd gcc-4.9.2
$ sd mkdir build; cd build
$ ../configure --disable-multilib --enable-languages=c,c++,java --program-suffix=-4.9.2 && make -s -j2 && sudo make install

ポイントは 64bit 環境では --disable-multilib を指定することです.
じゃないと 32bit 用のヘッダを見に行こうとして怒られます.

configure か make で転ぶ場合は、環境変数を確認してください.

実行時パスを設定したつもりで以外と忘れていることも考えられます.
sirone はこれで 1 時間ほど Google 先生と格闘しました….

インストールできました?

$ g++-4.9.2 --version

g++-4.9.2 とかあり得ないと思ったあなたへ. alternatives ノススメ.

alternatives を設定して、別バージョンへの対応も視野に入れておきましょう!

$ sudo yum remove gcc gcc-c++
$ sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/local/bin/gcc-4.9.2 20 \
--slave   /usr/bin/g++ g++ /usr/local/bin/g++-4.9.2 \
--slave   /usr/bin/gcj gcj /usr/local/bin/gcj-4.9.2
$ update-alternatives --display gcc

これで $ gcc --version とやった時に、4.9.2 が表示されれば無事終了です!
長々とお疲れ様でした!

それでは良きエンジニアライフを(^w^)ノシ

sirone
フリーランスプログラマです。 元ゲーム業界を渡って、今はソーシャルゲーム業界で活動していますが、基本的に雑食です。プログラミングが関わってくることになら大体首を突っ込んでます。
http://blog.twilighteve.info/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away