MENU

UbuntuにC/C++の開発環境を構築する

本記事では、UbuntuにC/C++の開発環境を構築し、Hello World!を出力する方法を紹介します。

本記事では既にUbuntuがインストールされていることが前提です。WindowsPCでUbuntuをインストールする方法はWindowsPCにUbuntu環境構築する方法を参照してください。本記事での環境は以下です。
Ubuntu 24.04 LTS

C++の勉強におすすめの書籍はこちらです。

[改訂第5版]C ポケットリファレンス (Pocket reference)

新品価格
¥3,520から
(2024/6/20 20:39時点)

Effective Modern C ―C 11/14プログラムを進化させる42項目

新品価格
¥4,180から
(2024/6/20 20:40時点)

Effective C 第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTI)

新品価格
¥4,180から
(2024/6/20 20:40時点)

目次

ビルドツールのインストール

UbuntuでC/C++のコードをビルドするためには、コンパイラやビルド用のツールをインストールする必要があります。Ubuntuには、「build-essential」というソフトウェアのコンパイルやビルドに必要な基本的なツールやライブラリをまとめたパッケージが用意されているので、これをインストールします。

STEP
build-essentialのインストール

Ubuntuのターミナルを開き、以下のコマンドを実行してください。

sudo apt install build-essential

build-essentialがインストールされます。

STEP
コンパイラのバージョン確認

以下のコマンドで、gccとg++のバージョンを確認できます。

gcc --version // gccのバージョン
g++ --version // g++のバージョン

以上で、C/C++のコードをビルドする準備ができました。

Hello World!してみる

さっそくHello World!を出力するコードを書いていきましょう。

STEP
C++のファイルを作成する

以下のコマンドを順番に実行して、home/HelloWorld/にhello.cppというファイルを作成します。

cd $HOME
mkdir HelloWorld
touch hello.cpp

hello.cppというファイルができました。

STEP
ソースコードを書く

hello.cppを開いて以下のコードを書きます。

#include <iostream>

int main() {
    std::cout << "Hello World!" << std::endl;
    return 0;
}

それぞれの行で何をしているか解説します。

#include <iostream>

C++標準ライブラリの入出力ストリームを使用するために必要なヘッダファイルをインクルードしています。このヘッダファイルをインクルードすることで、std::cout、std::endlを使った文字列の出力が可能になります。

int main()

C++プログラムのエントリーポイントとなる関数です。ここからプログラムの実行が始まります。

std::cout << "Hello World!" << std::endl;

標準出力ストリーム(std::cout)に”Hello World!”という文字列を出力し、その後に改行(std::endl)を行います。

return 0;

プログラムが正常に終了したことをOSに通知します。

STEP
プログラムをビルドする

ターミナルを開き、先ほど作成したhello.cppがあるディレクトリに移動し、以下のコマンドを実行してください。

g++ -o hello hello.cpp

ソースコードをビルドすると実行ファイルが作成されますが、上記のコマンドの-o helloというオプションは「hello」という名前の実行ファイルを作成するオプションです。
同じディレクトリ内に「hello」という実行ファイルが作成されているはずなので、以下のコマンドで実行してみましょう。

./hello
Hello World!

無事にHello World!が出力されました。

以上、「UbuntuでC/C++の開発環境を構築する」でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ソフトウェアエンジニアとして働いています。

---------------------資格---------------------
応用情報技術者
ネットワークスペシャリスト

目次