【Ubuntu】C/C++コンパイラ(gcc/g++)のインストール

【Ubuntu】C/C++コンパイラ(gcc/g++)のインストール サーバー

「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++によるコンパイルは成功です。

以上、コンパイラの動作確認を説明しました。

タイトルとURLをコピーしました