本当に必要なもの: コンパイラ
前のページで見たとおり、C++ はコンパイル型の言語です。ソースコードは実行前にネイティブの機械語へと変換されます。これを自分のマシンで行うには、欠かせないものを 1 つだけインストールします。それが C++ コンパイラ です。コンパイラは .cpp ファイルを読み込み、C++ 標準ライブラリを適用して、CPU が直接実行できる実行ファイルを生成します。
始めるのに重量級の IDE は 必要ありません。IDE は、同じコンパイラを下敷きにしたエディタとツール群をまとめたものにすぎません。多くの人は普通のテキストエディタ(や VS Code)で C++ を書き、ターミナルからコンパイラを呼び出しています。まずコンパイラをインストールし、好きなときにエディタを上乗せしましょう。
ここで学習を進めるだけなら、これらは何も必要ありません。これらのページのエディタブロックはクラウド上でコンパイル・実行されます。自分のコンピュータで C++ をビルドして実行したくなったら、ローカルのコンパイラをセットアップしてください。
OS に合ったコンパイラを選ぶ
主要な C++ コンパイラは 3 つあり、いずれも無料で、C++17 と C++20 に十分対応できるほどモダンです。
- GCC — GNU Compiler Collection。C++ のフロントエンドは
g++。Linux の既定です。 - Clang — LLVM のコンパイラ。C++ のフロントエンドは
clang++。macOS の既定です。 - MSVC — Microsoft のコンパイラ(
cl.exe)で、Visual Studio に同梱されます。Windows でのネイティブな選択肢です。
考えすぎる必要はありません。自分のプラットフォームで標準のものを使えば大丈夫です。C++ という 言語 は 3 つとも同じで、本コースのすべての例はどれでもコンパイルできます。違いが効いてくるのは、高度でベンダー固有の機能に到達してからです。
命名上の落とし穴を 1 つ。
gccとg++は どちらも GCC の一部ですが、C++ では常にg++を呼び出してください(gccではありません)。g++は C++ 標準ライブラリを自動でリンクしますが、gccはしないため、分かりにくいリンカエラーが出ます。
プラットフォームごとのインストール
手順は OS によって少し異なります。パッケージマネージャがある場合はそちらを優先しましょう。アップデートがコマンド 1 つで済むようになります。
Windows
最も簡単なのは、MSYS2 インストーラ経由で無料の MinGW-w64 GCC ツールチェーンを入れる方法です。MSYS2 をインストールしたら、そのターミナルを開いて次を実行します。
pacman -S mingw-w64-ucrt-x86_64-gcc
これで g++ が手に入ります。続いて、どのターミナルからでも g++ が使えるように C:\msys64\ucrt64\bin を PATH に追加します。あるいは、MSVC コンパイラと IDE を一度に揃えるには、「C++ によるデスクトップ開発」ワークロードを付けて Visual Studio(無料の Community エディション)をインストールします。
macOS
Apple は Clang を Command Line Tools として提供しています。コマンド 1 つでインストールできます。
xcode-select --install
これで clang++ が手に入ります。GCC が好みなら、Homebrew でインストールします: brew install gcc。
Linux (Debian/Ubuntu)
sudo apt update
sudo apt install g++
Fedora/RHEL では sudo dnf install gcc-c++ です。これらは C++ ではなくシェルのコマンドで、コンパイラをシステム全体にインストールします。Ubuntu で build-essential パッケージを入れると、g++ に加えて make などのビルドツールが一度にまとめて入ります。
うまくいったか確認する
これは飛ばされがちで、その後 1 時間を費やしてしまう工程です。新しい ターミナルを開き(更新後の PATH を反映させるため)、コンパイラにバージョンを尋ねます。
g++ --version
次のような出力が表示されるはずです。
g++ (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
macOS では clang++ --version、MSVC 入りの Windows では cl(「Developer Command Prompt」から実行)が相当します。command not found が出る場合は、コンパイラが入っていないか PATH に通っていません。自分のプラットフォームのインストール手順に戻り、ターミナルを開き直してください。
もう 1 つ便利な確認: コンパイラが既定とする標準を調べましょう。最近の GCC や Clang は既定で C++17 以降を使い、これらのページが前提としているのもそれです。-std=c++20 のようなフラグで標準を常に明示的に指定することもできます。これについては次のページで詳しく扱います。
手早くローカルで動作確認
g++ --version が番号を返した時点で、あなたのマシンは C++ をビルドできます。ローカルでコンパイルするのとまったく同じプログラムが、このブラウザ上でも実行できるので、ターミナルに触れる前に出力を確認できます。
__cplusplus マクロは、コンパイラがどの言語標準を使っているかを伝えるために定義する組み込みの数値です(たとえば 201703 は C++17 を意味します)。すべての C++ プログラムは int main() から始まり、std::cout はコンソールに書き出します。自分のマシンでは、これを main.cpp として保存し、コンパイルして、生成された実行ファイルを実行することになります。この「ビルドしてから実行する」という 2 段階のステップこそ、次のページのテーマです。
PATH についての注意
新規インストールで最もつまずくのが PATH です。シェルがプログラムを探すフォルダの一覧のことです。g++ --version が どのディレクトリからでも 実行できるなら、PATH にコンパイラのフォルダが含まれていて準備完了です。インストール先のディレクトリからしか動かない、あるいはまったく動かない場合は、コンパイラの bin フォルダがまだ PATH に入っていません。
- Windows ではこれが最もよくあるつまずきです。MinGW-w64 をインストールした後、その
binフォルダを手動で PATH に追加し、新しいターミナルを開く必要があります。 - macOS と Linux では、パッケージマネージャや Xcode ツールがコンパイラを PATH に入れてくれるため、これが問題になることはまれです。
後になって、ターミナルでは g++ --version が動くのに、ビルドツールやエディタがコンパイラを見つけられない場合、原因はほぼ必ず GUI アプリが引き継がなかった PATH です。アプリ(またはマシン)を再起動すれば、たいてい解決します。
次へ: C++ をコンパイルする
これで動作するコンパイラが用意でき、コマンドラインから確認できました。次のページでは、それを実際のワークフローに落とし込みます。.cpp ファイルを書き、g++ でコンパイルし(標準と出力名を制御する -std と -o フラグを含む)、生成された実行ファイルを実行する——さらに、各ステップが内部で実際に何をしているのかも見ていきます。
よくある質問
C++ を書き始めるのに IDE は必要ですか?
いいえ。C++ に必要なのは コンパイラ であり、IDE は任意です。ソースコードを実行可能なプログラムに変換するのはコンパイラ(g++、clang++、または MSVC の cl)です。VS Code のようなエディタや Visual Studio のような IDE は、作業を快適にしてくれるだけです。まずコンパイラを入れ、エディタは好きなときに追加すればよいのです。
どの C++ コンパイラをインストールすべきですか?
OS の標準ツールチェーンを使いましょう。Linux なら GCC(g++)、macOS なら Xcode ツール経由の Clang(clang++)、Windows なら MSVC または MinGW-w64 です。いずれも無料で、モダンな C++17/C++20 に対応しています。1 つ選んで PATH に通せば、本コースのすべての例をコンパイルできます。
C++ コンパイラがすでに入っているか確認するには?
ターミナルを開いて g++ --version(または clang++ --version)を実行します。バージョン番号が表示されれば、コンパイラが PATH 上にあり使用可能です。command not found と出る場合は、コンパイラが入っていないか PATH に通っていません。下記の各プラットフォーム向け手順でツールチェーンをインストールしてください。