トップページ -> インストール,設定,利用 -> Linux で開発環境やツールを整備 -> Linux で GNU コンパイラコレクション・バージョン4.3 のビルドとインストール (CentOS 5.3 の場合)
[サイトマップへ], [サイト内検索へ],

Linux で GNU コンパイラコレクション・バージョン4.3 のビルドとインストール (CentOS 5.3 の場合)

サイト構成 データベース関連技術 データの扱い インストール,設定,利用 プログラミング 情報工学の講義実習 サポートページ 連絡先,業績など

gcc とは,コンパイラの集まりで,とても優れたソフトウエア. この Web ページでは,Linux (Cent OS バージョン 5.3 を使用) で gcc バージョン 4.3 をインストールし,C, C++, FORTRAN コンパイラとして機能させる手順を説明する.


事前準備

インストール前に「yum check-update; yum update」を実行しておくとトラブルが減るでしょう. これは更新可能な全パッケージを更新するという操作です.

yum check-update
yum update

前もって決めておく事項


gcc バージョン 4.3 を yum でインストール

gcc バージョン 4.3 をビルドするのに gcc や c++ が必要、という状況ですので、yum を使ってインストールする.

yum install flex
yum install bison
yum install glibc-devel
yum install gcc-c++
yum install gcc43-c++
yum install libstdc++-devel
yum install libstdc++43-devel
# fortran は(必要ないが)ついでに
yum install *fortran
yum install libfortran43

GNU コンパイラコレクション・バージョン4.3 のビルドとインストール

インストールの方針

PPL のダウンロード

PPL とは,本来,凸多面体を扱うためのプログラム群. あとでビルドしたいので,ダウンロードと解凍を行っておく.

  1. PPL のソースコードのダウンロード

    ダウンロードしたら作業用ディレクトリ(例えば /tmp)に置く.

    ftp://ftp.cs.unipr.it

  2. ダウンロードしたファイルの解凍
    cd /tmp
    tar -xvjof ppl-0.10.2.tar.bz2
    

GNU コンパイラコレクション・バージョン4.3 のビルドに必要なソフトウエアのビルドとインストール

/usr/local 下にインストールする.

  1. 下記のコマンドを,1つのファイルに保存 (ファイル名は、例えば hoge.sh

  2. 「sh hoge.sh」のようにして実行

    2回実行しても良い。なぜ2回実行するのか?

    1. 最初は, make, termcap, libtool, gmp, mpfr, gdb, libiconv, binutils, gcc/g++ バージョン4.3 を, Linux にインストール済みの gcc/g++ バージョンを使ってビルドし,インストール
    2. 次は, make, termcap, libtool, gmp, mpfr, gdb, libiconv, binutils, gcc/g++ バージョン4.3 を, 今インストールされた gcc/g++ バージョン 4.3 を使ってビルドし,再度インストール。そうしたいときは、2回実行する。

  3. シェルスクリプトを実行すると,途中で、何度か「Please press ENTER」と表示して止まる.エラーが出ていないことを確認の上、Enter キーを押す. エラーが出ている場合には、原因を調べて対処.

  4. ソースコードのバージョンは,2009/05 時点の最新版ですが、より新しいものを使いたい場合には、ソースコードを入手し、下記を書き換えた後に実行.

  5. コマンドを、1つのファイルに保存せずに、手打ちで行う場合には「echo Please press ENTER」と「read」は打たなくてよい.

gcc の configure については,http://gcc.gnu.org/install/configure.htmlなどの情報源があります.

-------------ここから-----------
TMP=/tmp
LANG=C

#
# 環境変数の設定
# ※ すでに gcc-4, g++-4, gfortran-4 をインストール済みならば,そちらを使う

# yum の バージョン 4.3
if [ -x /usr/bin/gcc43 ]; then
    export CC=/usr/bin/gcc43
fi
if [ -x /usr/bin/g++43 ]; then
    export CXX=/usr/bin/g++43
fi
if [ -x /usr/bin/gfortran43 ]; then
    export F77=/usr/bin/gfortran43
fi


if [ -x /usr/local/bin/gcc-4 ]; then
    export CC=/usr/local/bin/gcc-4
fi
if [ -x /usr/local/bin/g++-4 ]; then
    export CXX=/usr/local/bin/g++-4
fi
if [ -x /usr/local/bin/gfortran-4 ]; then
    export F77=/usr/local/bin/gfortran-4
fi

if [ `arch` == "x86_64" ]; then
    export ARCH="-m64"
else
    export ARCH="-m32"
fi

export CFLAGS=${ARCH}

echo CC = ${CC}
echo CXX = ${CXX}
echo F77 = ${F77}
echo ARCH = ${ARCH}
echo Please press ENTER
read

#
# ファイルのダウンロード
#
    cd ${TMP}
    wget http://133.5.18.167/computer/src/gnu/make-3.81.tar.gz
    wget http://133.5.18.167/computer/src/gnu/termcap-1.3.1.tar.gz
    wget http://133.5.18.167/computer/src/gnu/libtool-2.2.6a.tar.gz
    wget http://133.5.18.167/computer/src/gnu/gmp-4.2.4.tar.bz2
    wget http://133.5.18.167/computer/src/gnu/mpfr-2.4.1.tar.bz2
    wget http://133.5.18.167/computer/src/gnu/libiconv-1.13.tar.gz
    wget http://133.5.18.167/computer/src/gnu/gdb-6.6.tar.bz2
    wget http://133.5.18.167/computer/src/gnu/binutils-2.19.1.tar.bz2
    wget http://133.5.18.167/computer/src/gnu/gcc-4.3.4.tar.bz2
    echo Please press ENTER
    read


#
# ビルド
#

cd ${TMP}
rm -rf make-3.81
tar -xvzof make-3.81.tar.gz
cd make-3.81
./configure --prefix=/usr/local
echo Please press ENTER
read
make
echo Please press ENTER
read
make install
echo Please press ENTER
read

cd ${TMP}
rm -rf termcap-1.3.1
tar -xvzof termcap-1.3.1.tar.gz
cd termcap-1.3.1
CFLAGS="-fPIC ${ARCH} ./configure --prefix=/usr/local
echo Please press ENTER
read
make -j2 CFLAGS="-fPIC ${ARCH}
echo Please press ENTER
read
make install
echo Please press ENTER
read

cd ${TMP}
rm -rf libtool-2.2.6a
tar -xvzof libtool-2.2.6a.tar.gz
cd libtool-2.2.6
./configure --prefix=/usr/local
echo Please press ENTER
read
make -j2
echo Please press ENTER
read
make install
echo Please press ENTER
read

#
#  static library
#

cd ${TMP}
rm -rf gmp-4.2.4
tar -xvjof gmp-4.2.4.tar.bz2
cd gmp-4.2.4
# 「CPPFLAGS="-fexceptions" 」が必要
CPPFLAGS="-fexceptions"  ./configure --enable-cxx  --prefix=/usr/local --enable-static
echo Please press ENTER
read
make
echo Please press ENTER
read
make check
echo Please press ENTER
read
make install
echo Please press ENTER
read

cd ${TMP}
rm -rf mpfr-2.4.1
tar -xvjof mpfr-2.4.1.tar.bz2
cd mpfr-2.4.1
./configure --prefix=/usr/local --with-gmp=/usr/local --enable-static --disable-shared
echo Please press ENTER
read
make
echo Please press ENTER
read
make check
echo Please press ENTER
read
make install
echo Please press ENTER
read

cd ${TMP}
rm -rf gdb-6.6
tar -xvjof gdb-6.6.tar.bz2
cd gdb-6.6
./configure --prefix=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local
echo Please press ENTER
read
make -j2
echo Please press ENTER
read
make install
echo Please press ENTER
read

cd ${TMP}
rm -rf libiconv-1.13
tar -xvzof libiconv-1.13.tar.gz
cd libiconv-1.13
./configure --prefix=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local --enable-static --enable-shared
echo Please press ENTER
read
make -j2
echo Please press ENTER
read
make -k install
echo Please press ENTER
read

cd ${TMP}
rm -rf binutils-2.19.1
tar -xvjof binutils-2.19.1.tar.bz2
cd binutils-2.19.1
./configure --prefix=/usr/local --mandir=/usr/local/share/man --infodir=/usr/local/share/info \
--with-gmp=/usr/local --with-mpfr=/usr/local  \
--enable-static --enable-shared --enable-threads=posix --enable-checking=release \
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
--with-gnu-ld --with-gnu-as 
echo Please press ENTER
read
make -j2
echo Please press ENTER
read
make install
--------------ここまで---------

ld.so.confの設定

スーパーユーザになって、下記を実行

この設定を行わないと,GNU コンパイラコレクション・バージョン4.3 のビルド時にエラーが出ることがある.

  1. /etc/ld.so.confに以下の行を追加
    -------------ここから-----------
    /usr/local/lib
    --------------ここまで---------
    

  2. 「ldconfig」の実行

    「ldconfig が無いよ」とエラーが出たときは,「/sbin/ldconfig」のように実行してみる.

GNU コンパイラコレクション・バージョン4.3 のビルドとインストール

-------------ここから-----------
TMP=/tmp

#
# 環境変数の設定
# ※ すでに gcc-4, g++-4, gfortran-4 をインストール済みならば,そちらを使う

# yum の バージョン 4.3
if [ -x /usr/bin/gcc43 ]; then
    export CC=/usr/bin/gcc43
fi
if [ -x /usr/bin/g++43 ]; then
    export CXX=/usr/bin/g++43
fi
if [ -x /usr/bin/gfortran43 ]; then
    export F77=/usr/bin/gfortran43
fi


if [ -x /usr/local/bin/gcc-4 ]; then
    export CC=/usr/local/bin/gcc-4
fi
if [ -x /usr/local/bin/g++-4 ]; then
    export CXX=/usr/local/bin/g++-4
fi
if [ -x /usr/local/bin/gfortran-4 ]; then
    export F77=/usr/local/bin/gfortran-4
fi

if [ `arch` == "x86_64" ]; then
    export ARCH="-m64"
else
    export ARCH="-m32"
fi

export CFLAGS=${ARCH}

echo CC = ${CC}
echo CXX = ${CXX}
echo F77 = ${F77}
echo ARCH = ${ARCH}
echo Please press ENTER
read

cd ${TMP}

# # gcc-4.3.4 の場合
rm -rf gcc-4.3.4
tar -xvjof gcc-4.3.4.tar.bz2
cd gcc-4.3.4

mkdir B1
cd B1
CFLAGS=${ARCH} CXXFLAGS=${ARCH} ../configure --prefix=/usr/local --exec-prefix=/usr/local --bindir=/usr/local/bin --sbindir=/usr/local/sbin --libexecdir=/usr/local/sbin --datadir=/usr/local/share  --infodir=/usr/local/share/info --mandir=/usr/local/share/man --program-suffix=-4 \
--with-gmp=/usr/local --with-mpfr=/usr/local --with-ppl=/usr/local \
--enable-bootstrap --enable-static --enable-shared --enable-threads=posix --enable-checking=release \
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
--with-gnu-ld --with-gnu-as \
--enable-languages=c,c++,fortran --disable-libgcj --disable-multilib
echo Please press ENTER
read
# 「-march=native」が原因でエラーが出ることがありますので、そのときは外してください.
make -j2 CFLAGS="-O2 -march=native ${ARCH}" LIBCFLAGS="-g -O2 -march=native ${ARCH}" LIBCXXFLAGS="-g -O2 -march=native ${ARCH}" bootstrap
echo Please press ENTER
read
make install
echo Please press ENTER
read
--------------ここまで---------

(参考) 「make」結果の表示例 (ビルドが成功した例として載せています)



本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ)