LoginSignup
33
29

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-01-21

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 をインストールします.

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 をインストールします.

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 をインストールします.

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 をインストールします.

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 をインストールします.

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 をインストールします.

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

$ 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^)ノシ

33
29
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
29