gcc4.6.1をインストール
c++11を利用したくなったのでgccの最新版を入れることにした。
インストール済みだったのは4.4.3(ubuntu10.04プリインストール)、
今回入れたのは4.6.1。
c++11の新機能は以下で知った
http://topcoder.g.hatena.ne.jp/cafelier/20110816/1313498443
基本、http://gcc.gnu.org/install/を見れば分かる。
以下メモ。(基本このとおりで出来るかと。。)
cd $HOME mkdir gccinstall cd gccinstall wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.6.1/gcc-core-4.6.1.tar.gz wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.6.1/gcc-g++-4.6.1.tar.gz tar xf gcc-core-4.6.1.tar.gz tar xf gcc-g++-4.6.1.tar.gz mkdir build mkdir obj cd obj ../gcc-4.6.1/configure --prefix $HOME/gccinstall/build
依存ソフトウェアが足りない場合は、ここでエラーが出る
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
#GMP, MPFR, MPCは所定のディレクトリに解凍しておいておけばgccのMakefileがよしなにしてくれるみたいです。すげえ
wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.gz tar xf gmp-5.0.2.tar.gz mv gmp-5.0.2 gcc-4.6.1/gmp
MPFR
wget http://www.mpfr.org/mpfr-current/mpfr-3.0.1.tar.gz tar xf mpfr-3.0.1.tar.gz mv mpfr-3.0.1 gcc-4.6.1/mpfr
MPC
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz tar xf mpc-0.9.tar.gz mv mpc-0.9 gcc-4.6.1/mpc
cd obj
../gcc-4.6.1/configure --prefix=$HOME/gccinstall/build/
Makefileができたら成功
(PPLはgraphite loop optimizationが要らなければ不要 とりあえず遊びたいならいらない気がします ループ最適化がどうとか)
make make install
パスを通します。.bashrcに追記。
libstdc++(shared library)を新しくします。
cd /usr/lib64 sudo mv libstdc++.so.6 libstdc++.so.6_bak sudo ln -s $HOME/gccinstall/build/lib64/libstdc++.so.6 .
以上で終了です。お疲れ様でした。
(追記:
make中にこんなエラー
コンパイルが中断されました。 make[5]: *** [_muldi3.o] エラー 1 make[5]: ディレクトリ `/home/kfujima/gccinstall/obj/x86_64-unknown-linux-gnu/32/libgcc' から出ます make[4]: *** [multi-do] エラー 1 make[4]: ディレクトリ `/home/kfujima/gccinstall/obj/x86_64-unknown-linux-gnu/libgcc' から出ます make[3]: *** [all-multi] エラー 2 make[3]: ディレクトリ `/home/kfujima/gccinstall/obj/x86_64-unknown-linux-gnu/libgcc' から出ます make[2]: *** [all-stage1-target-libgcc] エラー 2 make[2]: ディレクトリ `/home/kfujima/gccinstall/obj' から出ます make[1]: *** [stage1-bubble] エラー 2 make[1]: ディレクトリ `/home/kfujima/gccinstall/obj' から出ます make: *** [all] エラー 2
よく分からないけど以下で解決
sudo aptitude install libc6-dev-i386
参考URL: http://ubuntuforums.org/showthread.php?t=1281485
make[5]: *** [alloc.lo] エラー 1 make[5]: ディレクトリ `/home/kfujima/gccinstall/obj/x86_64-unknown-linux-gnu/libgomp' から出ます make[4]: *** [all-recursive] エラー 1 make[4]: ディレクトリ `/home/kfujima/gccinstall/obj/x86_64-unknown-linux-gnu/libgomp' から出ます make[3]: *** [all] エラー 2 make[3]: ディレクトリ `/home/kfujima/gccinstall/obj/x86_64-unknown-linux-gnu/libgomp' から出ます make[2]: *** [all-stage1-target-libgomp] エラー 2 make[2]: ディレクトリ `/home/kfujima/gccinstall/obj' から出ます make[1]: *** [stage1-bubble] エラー 2 make[1]: ディレクトリ `/home/kfujima/gccinstall/obj' から出ます make: *** [all] エラー 2
libgompはOpenMPに関係するなにからしい。しったこっちゃないので./configureに --disable-libgompを追加。
make[3]: *** [fibheap.o] エラー 1 make[3]: ディレクトリ `/home/kfujima/gccinstall/obj/libiberty' から出ます make[2]: *** [all-stage2-libiberty] エラー 2 make[2]: ディレクトリ `/home/kfujima/gccinstall/obj' から出ます make[1]: *** [stage2-bubble] エラー 2 make[1]: ディレクトリ `/home/kfujima/gccinstall/obj' から出ます make: *** [all] エラー 2
解決できません誰か助けてTT
->すべての作業を最初からやり直したらなぜか上手く行きました。
)