Ubuntu 18.04 に GCC コンパイラをインストールする方法
GCC
は GNU Compiler Collection
の略で、R, C, C++, Objective-C, Fortran, Ada, Go, D などの様々なプログラミング言語に対応しています。Ubuntu
に GCC
コンパイラをインストールできます apt
コマンドラインツールを使用します。apt
を使って GCC
をインストールするには、スーパーユーザとしてログインする必要があります。
GCC
を Ubuntu
にインストールする
メタパッケージ名 build-essential
は、GCC
や g++
や make
などのコンパイラを含むデフォルトの Ubuntu
リポジトリに存在します。
また、build-essentials
パッケージをインストールすることで、システムに GCC
をインストールします。build-essential
パッケージをインストールすると、システムに GCC
がインストールされます。
build-essential
をインストールするには、以下の手順に従う。
-
パッケージリストをコマンドで更新します。
sudo apt update
-
コマンドを使って
build-essential
パッケージをインストールします。sudo apt install build-essential
これにより、他のコンパイラと一緒に
GCC
がインストールされます。
GCC のインストールを確認する
以下のコマンドを用いて、GCC
が正常にインストールされているかどうかを確認します。
gcc --version
GCC
が正常にインストールされていれば、GCC
のバージョンやその他の情報が出力されます。
出力:
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 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.
GCC
を使ってプログラムをコンパイルする
GCC
を用いてプログラムをコンパイルするには、以下のコマンドを用います。
gcc <filename> -o <name_of_executable>
これはプログラム <filename>
をコンパイルして <name_of_executable>
という名前の実行ファイルを生成します。この実行ファイルを実行すると、以下のような出力が得られます。
gcc hello_world.c -o hello_world
プログラム hello_world.c
をコンパイルして hello_world
という名前の実行ファイルを生成しています。
実行ファイルを実行するには、以下のコマンドを用います。
./hello_world
複数の GCC
バージョンをインストールする
また、システムに複数のバージョンの GCC
をインストールすることも可能です。
複数のバージョンの Ubuntu をインストールするには、以下の手順に従います。
-
コマンドを使って、
ubuntu-toolchain-r/test
をシステムに追加します。sudo apt install software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test
-
コマンドを使って目的のバージョンをインストールします。
sudo apt install gcc-7 gcc-8 gcc-9
gcc-7
、gcc-8
、gcc-9
の 3つのバージョンをインストールします。 -
インストールされたバージョンの優先順位を管理します。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave
ここでは、
gcc-9
の優先度が最も高く設定されているので、このシステムではデフォルトのgcc
になります。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn