gcc 16.2, g++ 16.2, gfortran 16.2, binutils 2.47, gdb 17.2 のインストール(Ubuntu 上)
ここで扱うバージョンは,GCC 16.2.0(2026年8月リリース),binutils 2.47(2026年7月リリース),gdb 17.2(2026年5月リリース)である。Ubuntu の公式リポジトリが提供する GCC は,Ubuntu 24.04 LTS では 13 系,Ubuntu 26.04 LTS では 15 系であり,これより新しいバージョンを使う場合にソースコードからのビルドが必要になる。
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは,端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
ビルドに必要なソフトウェアのインストール
下記のソフトウェアをインストールする。
- build-essential, make ・・・ ビルドに使う C/C++ コンパイラーと make
- gmp, mpfr, mpc, isl ・・・ GCC のビルドに必要な数値計算ライブラリ。GCC 5 以降は Graphite 最適化に isl を用い,PPL および CLooG は使用しない
- gmp, mpfr ・・・ gdb 14 以降のビルドに必須
- zlib, zstd ・・・ binutils, GCC, gdb のデバッグ情報圧縮に使う
- ncurses, readline, expat ・・・ gdb の画面制御,行編集,XML 解析に使う
- python3-dev ・・・ gdb の Python スクリプト機能に使う。Ubuntu 24.04 LTS では Python 3.12,Ubuntu 26.04 LTS では Python 3.14 が対象になる
- flex, bison, texinfo ・・・ ソースコードからのビルドで使用する
端末で,次のコマンドを実行する。
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential make flex bison texinfo dpkg-dev pkg-config curl
sudo apt -y install libgmp-dev libmpfr-dev libmpc-dev libisl-dev
sudo apt -y install zlib1g-dev libzstd-dev libncurses-dev libreadline-dev libexpat1-dev python3-dev
/usr/local にインストールした as, ld, gdb は,環境変数 PATH の設定により,Ubuntu の apt でインストールされた同名のコマンドより先に見つかることがある。GCC については configure のオプション --program-suffix=-16 を指定し,gcc-16, g++-16, gfortran-16 という名前でインストールすることで,システムの gcc と共存させる。
binutils 2.47 のビルドとインストール
端末で,次のコマンドを実行する。
cd /tmp
curl -O https://ftp.gnu.org/gnu/binutils/binutils-2.47.tar.xz
rm -rf binutils-2.47
tar -xf binutils-2.47.tar.xz
cd binutils-2.47
mkdir build
cd build
../configure --prefix=/usr/local --with-system-zlib
make -j$(nproc)
sudo make install
gdb 17.2 のビルドとインストール
端末で,次のコマンドを実行する。
cd /tmp
curl -O https://ftp.gnu.org/gnu/gdb/gdb-17.2.tar.xz
rm -rf gdb-17.2
tar -xf gdb-17.2.tar.xz
cd gdb-17.2
mkdir build
cd build
../configure --prefix=/usr/local --with-system-readline --with-system-zlib --with-python=/usr/bin/python3
make -j$(nproc)
sudo make install
共有ライブラリの検索パスの設定
/usr/local/lib にインストールされた共有ライブラリを実行時に見つけられるようにするため,動的リンカの検索パスに /usr/local/lib を追加する。端末で,次のコマンドを実行する。
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/usr-local.conf
sudo ldconfig
# 設定の確認
ldconfig -p | grep /usr/local/lib | head
GCC 16.2.0 のビルドとインストール
GCC のビルドは,--enable-bootstrap を指定すると 3 段階のコンパイル(3-stage bootstrap)を行うため,時間とディスク容量を要する。ビルド用ディレクトリには 10 GB 程度の空き容量を確保しておく。ソースコードのディレクトリとは別のディレクトリでビルドする(別ディレクトリでのビルド)ことが GCC の公式手順である。
端末で,次のコマンドを実行する。
cd /tmp
curl -O https://ftp.gnu.org/gnu/gcc/gcc-16.2.0/gcc-16.2.0.tar.xz
rm -rf gcc-16.2.0
tar -xf gcc-16.2.0.tar.xz
cd gcc-16.2.0
mkdir build
cd build
../configure --prefix=/usr/local --program-suffix=-16 \
--enable-bootstrap --enable-shared --enable-static --with-system-zlib \
--with-gnu-ld --with-gnu-as \
--enable-languages=c,c++,fortran --disable-multilib
make -j$(nproc)
sudo make install
sudo ldconfig
GCC のビルドに必要な GMP, MPFR, MPC, ISL を apt でインストールせずに用意する場合は,ソースコード展開後のディレクトリで ./contrib/download_prerequisites を実行すると,これらのソースコードが取得され,GCC と同時にビルドされる。
インストールの確認
端末で,次のコマンドを実行する。バージョン番号が表示されればインストールは完了である。
/usr/local/bin/gcc-16 --version
/usr/local/bin/g++-16 --version
/usr/local/bin/gfortran-16 --version
/usr/local/bin/ld --version
/usr/local/bin/gdb --version
C プログラムのコンパイルと実行による動作確認を行う。端末で,次のコマンドを実行する。
cd /tmp
cat > hello.c <<'EOF'
#include <stdio.h>
int main(void) { printf("hello\n"); return 0; }
EOF
/usr/local/bin/gcc-16 -O2 -o hello hello.c
./hello