GCC をインストールする (「Installing GCC」日本語訳)

このページは InstallingGCC - GCC Wiki (最終更新日時 2016-09-16 21:03:38 更新者 JonathanWakely) の非公式日本語訳です。ライセンスは元ページと同じ GPL になります。

このページは、GCC をインストールする際のいくつかの一般的な問題を回避するためのガイドの提供を目的としています。 公式のインストールドキュメントは、GCC ドキュメントの Installing GCC の項目にあります。 注意:これらのインストールドキュメントは開発用の trunk を参照しており、リリースされたバージョンのインストール手順はリリースソースに含まれています。

多くの人にとって GCC をインストールする最も簡単な方法は、お使いのオペレーティングシステム用に作られたパッケージをインストールすることです。GCC プロジェクトは事前ビルドされた GCC を提供しておらず、ソースコードのみを提供していますが、すべての GNU/Linux ディストリビューションには GCC パッケージが含まれています。BSD ベースのシステムでは、Ports Collection に GCC が含まれています。その他のオペレーションシステムでは、「Installing GCC: Binaries」ページにいくつか GCC バイナリのサードパーティソースが記載されています。

もしお使いのシステムでバイナリが見つからない場合や、入手可能なものより新しいバージョンが必要な場合は、インストールのために GCC をソースからビルドする必要があります。

GCCのビルド

多くの人々は、installation docs を正しく読まずにすぐに GCC のビルドを試みようとします。そして、1つ以上のよくある間違いを犯します。

  • ソースディレクトリの中で ./configure を実行しないでください。これはサポートされていません。ビルドには、分離された別のディレクトリを生成し、ソースディレクトリの外から configure を実行することが必要です。(これは FAQ です)
  • もし GCC を GMP, MPFR, MPC に動的リンクさせる場合、関連する共有ライブラリはGCCのビルド時とインストールされたコンパイラを使うときの両方で動的リンカのパスになければいけません。(これも FAQ です)

サポートライブラリ

GCC のビルドに必要なソフトウェアについては Installing GCC: Prequisites を参照してください。もし GMP, MPFR, MPC サポートライブラリがお使いのオペレーティングシステムの一部としてインストールされていない場合は、2つの簡単な方法と、エラーが起こりやすい1つの難しい方法があります。何らかの理由で、多くの人が難しい方法を選びます。簡単な方法は次のとおりです。

  • もし十分に最新のバージョンを提供する場合は、お使いのOSパッケージ管理システムを使用して、サポートライブラリを標準システムの場所にインストールしてください。Debian ベースのシステム (Ubuntu 含む) では、インストールするパッケージは libgmp-dev, libmpfr-dev, libmpc-dev です。RPM ベースのシステム (FedoraやSUSE) では、インストールするのは gmp-devel, mpfr-devel, libmpc-devel (SUSEではmpc-devel) パッケージです。これらのパッケージは、ライブラリとヘッダを標準のシステムディレクトリにインストールし、GCC のビルド時に自動的に見つかるようにします。
  • あるいは、GCC ソースのアーカイブを解凍したあと、GCC ソースディレクトリで ./contrib/download_prerequisites スクリプトを実行するだけです。これらはサポートライブラリをダウンロードしてシンボリックリンクを作成し、GCC ビルドプロセスの一部として自動的にビルドされるようにします。ISL (Graphiteループ最適化のためにのみ必要なオプション) 無しで GCC をビルドしたい場合は、GRAPHITE_LOOP_OPT=no をスクリプトに設定します。

難しい方法で、推奨しないものは、GMP, MPFR, MPC のソースをダウンロードし、configure と install をそれぞれ非標準の場所に行い、GCC の configure で --with-gmp=/some/silly/path/gmp --with-mpfr=/some/silly/path/mpfr --with-mpc=/some/silly/path/mpc とし、強制的に LD_LIBRARY_PATH=/some/silly/path/gmp:/some/silly/path/mpfr:/some/silly/path/mpc/lib をお使いの環境に設定し続けることです。これは愚かで、どのように動的リンカが実行時にライブラリを見つけるか理解していない人にとって大きな問題を引き起こします。これは行わないでください。もし GCC のビルドが--with-gmp--with-mpfr--with-mpc オプションを使用して失敗する場合は、おそらくそれらを使用するべきではありません。

設定

すべてのドキュメンテーションは Installing GCC: Configuration を参照してください。ソースディレクトリの外側から srcdir/configure を実行する大きな利点 (./configure の代わりに) は、ソースディレクトリがどんな状況でも変更されないことです。そのため、ビルドに失敗したり再設定してビルドしたい場合は、単に objdir 内のすべてを削除して再開できます。

例えば、GCC 4.6.2 (C, C++, Fortran, Goをサポート) の設定とビルドは単純に次のようにします。

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2 --enable-languages=c,c++,fortran,go
make
make install

make ステップには長い時間がかかります。お使いのコンピュータに複数のプロセッサやコアがある場合は、make -j 2 (またはより多くの並列性のために大きな数字) を使用して並列でビルドすることで速度を向上させることができます。

ビルドが失敗し、configure コマンドに多くの複雑なオプションがある場合は、オプションを削除してシンプルにしてください。あなたが理解していない多くの設定のオプションは追加しないでください。それらがビルドが失敗する原因かもしれません。