環境構築:UNIX系の場合*
gccをインストールする
UNIX 系ならば大体は元から gcc が使えるので何もしなくていいと思いますが、最新版を使いたい人とかの為にソースコードから gcc をインストールする方法を説明します。
ソースコードの入手
ディレクトリは~/srcで作業を行うとします。
gcc の公式サイトのミラーサイト一覧から最寄りのサイトを選び、releases/ の中から好きなバージョンのgcc-*.*.*.tar.bz2をダウンロードします。ここではgcc-5.3.0.tar.bz2とします。これを解凍して
出来たソースディレクトリに移動し、contrib/download_prerequisites を実行して gcc の利用するプログラムのソースコードをダウンロードします。
gcc のビルドにはソースコードと異なるディレクトリを用いる事が強く推奨されているので、ソースディレクトリを抜けて例えば gcc_build を作ります。
設定
ソースディレクトリの configure に様々なオプションを付けて実行し、ビルドの設定を行います。
主要なオプションは以下の通りです(詳しくはconfigure --helpや「Installing GCC: Configuration」)。
- --prefix=dirname
- gccのインストール先を dirname に指定する。例えば--prefix=$HOME/localとすると、管理者権限が無くても自分のディレクトリにインストールができます。
- --program-prefix=prefix
- プログラム名の最初に prefix を付ける。
- --program-suffix=suffix
- プログラム名の最後に suffix を付ける。例えば--program-suffix=-5.3とすると、プログラム名はgcc-5.3となります。複数のバージョンを共存させる場合に有用です。
- --disable-bootstrap
- ブートストラップ・ビルドを無効にする。デフォルトでは、gcc は最初にビルドされた gcc 自身を使ってもう一度ビルドされ、更にそれを使って三度目のビルドが行われます。これをブートストラップ・ビルドと言って、コンパイラの最適化と検証の為に行われるのですが、大抵は一度きりでも問題ありません。
- --enable-languages=lang1,lang2,...
- コンパイラをビルドする言語を指定する。gcc 5.3.0 時点では ada、c、c++、fortran、go、java、jit、ito、lto、objc、obj-c++ が使えます。Ada、Go、JIT、Objective-C++ はデフォルトでは無効です。(JITは Just-In-Time compilation、LTOは Link-Time Optimization の機能サポートの意?)
例えば次の様に指定して実行します。
64ビット環境の場合
64ビット環境でconfigureを実行すると
とエラーが出たりします。
一つの解決策はconfigureのオプションに--disable-multilibを追加する事ですが、この場合にビルドした gcc でコンパイルしたプログラムは 64 ビット専用になる様です。
それが嫌な場合、32 ビットをターゲットする開発ライブラリを導入する事で解決できます。aptならば
を、yumならば
を実行しましょう。
ビルド
configureが無事に終われば、いよいよmakeでビルドを行います。
gcc のコンパイル自体にも C 及び C++ のコンパイラが必要なので、無ければパッケージマネージャ等でインストールして下さい。例えば Ubuntu では、OS のインストール直後だと C++ のコンパイラが入っていない為
を実行する必要があります。
gcc は並列ビルドが可能で、-jN というオプションでジョブ数が指定できます。8 並列ならば
を実行します。
インストール
悠久の時を経て無事にビルドが終了したら、バイナリをインストールします。
configure時に管理者権限が要らないインストール先を選んでいればsudoは不要です。
gccが実行できる事を確認すれば完了です。