GCC のバージョンを 4.9 に上げる
C++ プログラミングをしていて,C++11 の STL を利用したいときがある。
しかしながら、CentOS 6 とか Ubuntu 12 系列ではあらかじめ入っている(若しくは yum なり apt-get なりでパッケージとして簡単に導入できる)GCCのバージョンは 4.4 系である。残念ながらこれでは C++11 は利用できない。
C++11のどの機能をどの GCC バージョンから利用できるかは下記の本家サイトから確認できる。
C++0x/C++11 Support in GCC - GNU Project - Free Software Foundation (FSF)
GCC 4.7 から幾つかの機能が利用できるようになってきており,GCC 4.8 からはほとんどの機能が利用できるようだ。現在は GCC 4.9 があるので今回はこれにバージョンアップしたいと思う。環境は CentOS 6 だが Ubuntu でもあまり変わらないだろう。
バージョンアップの方法はネットでいろいろ公開されており,いろいろ試したが,下記のサイトが一番分かりやすくて良かった。
密かなITエンジニアの備忘録:gcc4.4.7 → 4.9.0にバージョンアップ
この記事は非常にシンプルであったが,幾つか詰まったところもあったのでそこを補完していこうと思う。
- gcc のソースをダウンロード
下記のサイトより好きなバージョンの GCC をダウンロード。今回は gcc-4.9.1 を選択した。なおミラーサイトは当然 JAPAN を選ぶべき。今回 GCC をバージョンアップするマシンは WIDE バックボーンに近いところにあるので,ftp.tsukuba.wide.ad.jp を選択。GCC mirror sites - GNU Project - Free Software Foundation (FSF)
- ダウンロードしたファイルの展開
ここで詰まることはなかった。tar コマンドで普通に展開すればよろしい。 - 必要なパッケージのダウンロード
# cd gcc-4.9.1
# ./contrib/download_prerequisites
# yum -y install glibc-devel*
# yum -y install gcc-c++*
- ビルド
ここまでくれば後は簡単。# mkdir build# cd build
make には非常に時間がかかる。帰る前に make して明日来たら出来てるだろうと思い放置していたらエラーで止まってた。エラーの内容は
# ../configure --disable-multilib
# makecannot find neither zip nor jar
# yum install -y zip
これでうまくいった。
# make - install & 確認
普通に make install して gcc -v とすればバージョンが上がっていることがわかる。おわったー!
意外と時間が掛かった。あとはこの作業を繰り返して 72 台のサーバの gcc をアップするだけだ・・・つらい・・・