Debian 12 への GCC C/C++ コンパイラのインストール方法【ステップバイステップガイド】

GCC(GNU Compiler Collection)は、GNUプロジェクトが開発しているオープンソースのコンパイラおよびツール群のコレクションです。GCCを使用すると、C/C++、Objective-C、Fortranなど、さまざまなプログラミング言語のソースコードをマシンコードにコンパイルできます。
さらに、GCCはコンパイル時のコード最適化やエラーチェック機能を備えており、コンパイル済みプログラムをデバッグするためのツールも同梱されています。ARM 32bit、ARM 64bit、x86_64、PowerPCなど、複数のシステムアーキテクチャ向けのバイナリをビルドできる点も大きな特徴です。
本記事では、Debian 12「Bookworm」にGCC C/C++コンパイラをインストールする手順を詳しく解説します。
目次
- Debian 12 のパッケージデータベースキャッシュの更新
- Debian 12 への GCC C/C++ コンパイラのインストール
- GCC コンパイラが正しくインストールされているかの確認
- 旧バージョン(GCC 11)のインストール方法
- まとめ
1. Debian 12 のパッケージデータベースキャッシュの更新
まず、システムにインストール可能なパッケージ情報を最新の状態にしておきましょう。Debian 12のパッケージデータベースキャッシュを更新するには、ターミナルで以下のコマンドを実行します。
$ sudo apt update
コマンドの実行が完了すると、パッケージデータベースキャッシュが最新の状態に更新されます。

2. Debian 12 への GCC C/C++ コンパイラのインストール
GCC C/C++コンパイラと、開発に必要な一連のビルドツール(build-essential)をまとめてインストールするには、以下のコマンドを実行します。
$ sudo apt install build-essential
インストールを続行するかどうか確認されるので、Y を入力して Enter キーを押してください。

すると、GCCと必要なビルドツールがインターネットからダウンロードされます。環境によっては完了まで少し時間がかかる場合があります。

ダウンロードが完了すると、自動的にインストールが開始されます。こちらも完了までしばらくお待ちください。

処理が終われば、GCC C/C++コンパイラと必要なビルドツールがDebian 12マシンに正しくインストールされています。

3. GCC コンパイラが正しくインストールされているかの確認
GCC C/C++コンパイラのインストール後、ターミナルから以下のコマンドを実行して、正しく利用できる状態になっているかを確認しましょう。
$ gcc --version
$ g++ --version
実行結果を見ると、GCC C/C++コンパイラ バージョン12.2.0がDebian 12マシンにインストールされていることがわかります。

4. 旧バージョン(GCC 11)のインストール方法
Debian 12では、デフォルトでGCC C/C++コンパイラ バージョン12がインストールされます。しかし、プロジェクトの互換性などの理由で古いバージョンが必要になるケースもあります。そのような場合は、GCC C/C++コンパイラ バージョン11を追加でインストールできます。
GCC 11をインストールするには、以下のコマンドを実行します。
$ sudo apt install gcc-11 g++-11
インストールを続行するかどうか確認されるので、Y を入力して Enter キーを押してください。

GCC C/C++コンパイラ バージョン11と必要なパッケージがインターネットからダウンロードされます。完了までしばらく時間がかかることがあります。

ダウンロード完了後、インストールが自動的に進行します。

処理が完了すれば、GCC C/C++コンパイラ バージョン11がDebian 12マシンにインストールされています。

先ほどと同じように、以下のコマンドでバージョンを確認してみましょう。
$ gcc --version
$ g++ --version
実行結果から、GCC C/C++コンパイラ バージョン11.3.0が正しくインストールされていることが確認できます。

まとめ
本記事では、Debian 12に最新版のGCC C/C++コンパイラ(バージョン12)をインストールする方法を解説しました。あわせて、互換性のために必要となる旧バージョン(GCC 11)のインストール手順についても紹介しました。これでDebian 12上でC/C++の開発環境を構築し、すぐにコンパイル作業を始められるはずです。
著者について

Shahriar Shovon
フリーランスのLinuxシステム管理者。Node.jsとJavaScriptを使ったWeb API開発も得意としています。バングラデシュ出身で、現在は同国有数の国立工科大学であるクルナ工科大学(KUET)にて、電子・通信工学を専攻しています。
-
C++で重みが完全平方数となるノードを数える方法
各ノードに重みが割り当てられた二分木が与えられたとき、「重みが完全平方数であるノード」の個数を求めるのが本記事の目的です。例えば、あるノードの重みが36であれば、36 = 6² と表せるため、このノードはカウント対象となります。例入力値を入力して作成される木は以下の通りです。出力Count the nodes whose weight is a perfect square are: 4説明各ノードとそれに対応する重みが与えられており、それぞれの重みが完全平方数かどうかを確認します。ノード重み完全平方数該当するか212111 × 11はい1819 × 9はい437素数(平方数ではない)いいえ3
-
C++で隣接リストを使ってグラフを表現する方法と実装例
グラフの隣接リスト(Adjacency List)表現とは、連結リスト(リンクリスト)を用いてグラフを表す手法のことです。この表現方式では、リストの配列を使用します。配列のサイズは V であり、ここでの V はグラフの頂点数を意味します。つまり、V 個の異なるリストを格納するための配列を用意するということです。あるリストの先頭が頂点 u である場合、そのリストには u のすべての隣接頂点が格納されることを示しています。隣接リスト表現の計算量この表現方式に必要な空間計算量は、無向グラフの場合 O(V+2E)、有向グラフの場合 O(V+E) となります。辺の数が増えるほど、必要な記憶領域も増加して