「Cコンパイラ(gcc)をインストールしたい」
「C++コンパイラ(g++)をインストールしたい」
「Ubuntuでパッケージを自作したい」
このような場合には、build-essentialがおススメです。
この記事では、C/C++コンパイラ(gcc/g++)のインストールについて解説しています。
本記事の内容
- build-essentialとは?
- build-essentialのインストール
- コンパイラの動作確認
それでは、上記に沿って解説していきます。
build-essentialとは?
build-essentialは、パッケージを作成するために必要なパッケージです。
パッケージの内容を確認します。
$ sudo apt info build-essential Package: build-essential Version: 12.8ubuntu1.1 Priority: optional Build-Essential: yes Section: devel Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Matthias Klose <doko@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 21.5 kB Depends: libc6-dev | libc-dev, gcc (>= 4:9.2), g++ (>= 4:9.2), make, dpkg-dev (>= 1.17.11) Task: ubuntu-mate-core, ubuntu-mate-desktop Download-Size: 4,664 B APT-Sources: http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages Description: build-essential なパッケージの一覧情報 Debian パッケージを構築するつもりがないのであれば、本パッケージは不要です。 1.14.18 以降の dpkg では、Debian パッケージの構築に本パッケージは必須です。 . 本パッケージには、Debian パッケージの構築に必須であるとされるパッケージ の一覧情報が含まれています。本パッケージはこの一覧にある各種パッケージに 依存もしているので、build-essential な各種パッケージを簡単にインストール できます。 . 本パッケージがインストールされていれば、特定のパッケージを構築する際に は、そのパッケージが構築にあたって依存しているという指定のあるパッケー ジをインストールするだけで構いません。逆に、作成しているパッケージの構 築に依存しているパッケージを判断する際に、本パッケージが依存する各種パッ ケージは常に除外して構いません。 . 本パッケージは、どのパッケージが build-essential であるかの定義は_行い ません_。実際の定義は Debian ポリシーマニュアルにあります。本パッケー ジは一覧情報を提供するだけですが、ほとんどの人にはこれで充分です。 本パッケージとマニュアルが一致しない場合に正しいのは、マニュアルになり ます。
上記記述の中に、gccとg++とあります。
build-essentialには、gccとg++が含まれているということです。
そして、build-essentialをインストールするとこれらのコンパイラがインストールされます。
C/C++コンパイラのインストールは、build-essentialのインストールと捉えましょう。
以上、build-essentialについて説明しました。
次は、build-essentialのインストールを説明します。
build-essentialのインストール
build-essentialのインストールを検証するのは、以下のOSとなります。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"
もしかしたら、build-essentialがすでにインストール済みの可能性もあります。
次のコマンドで状況を確認しておきましょう。
gcc --version g++ --version
次のように表示されれば、まだコンパイラはインストールされていません。
$ gcc --version コマンド 'gcc' が見つかりません。次の方法でインストールできます: apt install gcc 管理者に確認してください。 $ g++ --version コマンド 'g++' が見つかりません。次の方法でインストールできます: apt install g++ 管理者に確認してください。
上記で提案されるインストールコマンドは、無視します。
インストールには、次のコマンドを用います。
sudo apt install -y build-essential
インストールには、数分かかります。
インストールが完了したら、先ほどの確認用コマンドを実行します。
$ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ g++ --version g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
コンパイラがインストールされたようです。
以上、build-essentialのインストールを説明しました。
次は、コンパイラの動作確認を説明します。
コンパイラの動作確認
インストールできたコンパイラの動作を確認します。
- Cコンパイラ(gcc)
- C++コンパイラ(g++)
それぞれについて以下で説明します。
Cコンパイラ(gcc)
hello.c
#include <stdio.h> int main() { printf("Hello World"); return 0; }
上記ファイルを作成します。
ファイルが作成できたら、次のコマンドでコンパイル実施。
$ gcc -o hello hello.c
同ディレクトリ上に、helloファイルが作成されています。
このファイルを実行。
$ ./hello Hello World
上記のように表示されれば、gccによるコンパイルは成功です。
C++コンパイラ(g++)
hello.cpp
#include <iostream> using namespace std; int main() { cout << "Hello world." << endl; return 0; }
上記ファイルを作成します。
ファイルが作成できたら、次のコマンドでコンパイル実施。
$ g++ -o hellopp hello.cpp
同ディレクトリ上に、helloppファイルが作成されています。
このファイルを実行。
$ ./hellopp Hello world.
上記のように表示されれば、g++によるコンパイルは成功です。
以上、コンパイラの動作確認を説明しました。