GCCのソースコードからのビルド方法

2 min read | Posted: 2025-03-09 | tags: GCC , C/C++ , コンパイラ , ビルド

最新版のGCCコンパイラをソースコードから一発でビルドするスクリプトをまとめておく。細かいオプションや説明などは公式のページに書いてあると思うので、割愛する。 システムパッケージではなく、自分でビルドすることで、最新の機能やバグ修正を利用できる。 実行すると $HOME/opt/gcc にインストールされる。

ビルドスクリプト

以下のスクリプトを実行すると、GCC 14.2.0がビルドされ、$HOME/opt/gccにインストールされる:

#!/bin/bash
set -e  # エラー時に即終了

# ソースコード用ディレクトリ作成
mkdir -p "$HOME/src"
cd "$HOME/src"

# 必要なファイルをダウンロード
curl -O https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-14.2.0/gcc-14.2.0.tar.gz
tar -xvf gcc-14.2.0.tar.gz

cd gcc-14.2.0

# 依存ライブラリをダウンロード
bash ./contrib/download_prerequisites

# ビルド用ディレクトリ作成(ソースディレクトリ外でビルドするのが推奨)
mkdir -p build
cd build

# コンパイル設定
../configure --disable-multilib \
    --enable-languages=c,c++ \
    --prefix="$HOME/opt/gcc"

# コンパイル(並列ビルド)
make -j$(nproc)

# インストール
make install

オプションの説明

  • --disable-multilib: 複数のターゲットアーキテクチャ向けのライブラリを無効化する(ビルド時間短縮)
  • --enable-languages=c,c++: C言語とC++のみをビルド対象にする。他にもfortranobjcadaなどが指定可能
  • --prefix="$HOME/opt/gcc": インストール先ディレクトリを指定する
  • make -j$(nproc): 利用可能なCPUコア数に応じて並列ビルドを行う

インストール後

バージョン確認

インストールが成功したか確認するには:

$HOME/opt/gcc/bin/gcc --version
$HOME/opt/gcc/bin/g++ --version

パスの設定

ビルドしたGCCを使用するには、以下の環境変数の設定が必要:

# ~/.bashrcまたは~/.bash_profileに追加
export PATH="$HOME/opt/gcc/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/opt/gcc/lib:$LD_LIBRARY_PATH"

設定後は新しいターミナルを開くか、source ~/.bashrcなどで設定を再読み込みする。

ディレクトリ構成

ビルド後のディレクトリ構成は以下のようになる:

$HOME/
├── src/  # ソースコード
│   └── gcc-14.2.0/
│       ├── gmp-6.2.1/  # 自動ダウンロードされた依存ライブラリ
│       ├── mpfr-4.1.0/
│       ├── mpc-1.2.1/
│       └── isl-0.24/
└── opt/
    └── gcc/  # インストール先
        ├── bin/
        │   ├── gcc
        │   ├── g++
        │   └── ...
        ├── include/
        ├── lib/
        └── ...

注意事項

  • ビルドには環境によっては1時間以上かかる
  • 約10GB程度のディスク容量が必要
  • システムの標準コンパイラと競合しないよう、パスの設定に注意する
  • メモリ不足エラーが生じた場合は、make -jの並列数を減らして試す
  • インストール後、古いバージョンが優先される場合はwhich gccコマンドでパスが正しく設定されているか確認する