Linux で CMake Tools を使い始める
CMake は、コンパイラやプラットフォームに依存しない構成ファイルを使用して、コンパイラやプラットフォームに固有のネイティブビルドツールファイルを生成する、オープンソースのクロスプラットフォームツールです。
CMake Tools 拡張機能は、Visual Studio Code と CMake を統合し、C++ プロジェクトの構成、ビルド、デバッグを容易にします。
このチュートリアルでは、Visual Studio Code 用の CMake Tools 拡張機能を使用して、Linux 上でシンプルな C++ CMake プロジェクトを構成、ビルド、デバッグする方法を説明します。CMake、コンパイラ、デバッガー、ビルドツールのインストールを除けば、このチュートリアルの手順は、Windows などの他のプラットフォームで CMake を使用する場合にも一般的に適用されます。
問題が発生した場合は、VS Code ドキュメントリポジトリでこのチュートリアルの Issue を提出してください。また、CMake Tools 全般に関する詳細については、Visual Studio Code 用 CMake Tools ドキュメントを参照してください。
前提条件
Ubuntu でこのチュートリアルを完了するには、以下をインストールします。
-
VS Code 用 C++ 拡張機能。拡張機能ビュー (⇧⌘X (Windows、Linux Ctrl+Shift+X)) で「c++」を検索して C/C++ 拡張機能をインストールします。
-
VS Code 用 CMake Tools 拡張機能。拡張機能ビュー (⇧⌘X (Windows、Linux Ctrl+Shift+X)) で「CMake tools」を検索して CMake Tools 拡張機能をインストールします。
-
また、CMake、コンパイラ、デバッガー、ビルドツールをインストールする必要があります。
ビデオ: ビルドシステムとは? プロジェクトに CMake を追加する方法
ビルドシステムがいつ役立つか、およびプロジェクトの CMake をセットアップする方法を理解するには、このビデオを見るか、以下のセクションの手順に従ってください。
CMake がインストールされていることを確認する
VS Code CMake Tools 拡張機能は、システムにインストールされている CMake を使用して動作します。最良の結果を得るには、CMake バージョン 3.27 以降を使用してください。
CMake がシステムに既にインストールされているかを確認します。ターミナルウィンドウを開き、次のコマンドを入力します。
cmake --version
CMake をインストールするか、バージョン 3.27 以降をお持ちでない場合は、Kitware APT Repositoryでご使用のプラットフォームの手順を参照してください。バージョン 3.27 以降をインストールしてください。
開発ツールがインストールされていることを確認する
VS Code を使用してソースコードを編集しますが、ソースコードのコンパイルとデバッグは、システムにインストールされているコンパイラ、デバッガー、ビルドツール (make
など) を使用して行います。
この Ubuntu でのチュートリアルでは、GCC コンパイラ、デバッグには GDB、プロジェクトのビルドには make
を使用します。これらのツールは Ubuntu にデフォルトではインストールされていないため、インストールする必要があります。幸い、それは簡単です。
GCC がインストールされているか確認する
GCC がシステムに既にインストールされているかを確認するには、ターミナルウィンドウを開き、次のコマンドを入力します。
gcc -v
GCC がインストールされていない場合は、ターミナルウィンドウから次のコマンドを実行して、Ubuntu のパッケージリストを更新します。古い Linux ディストリビューションは、最新のパッケージの取得を妨げる可能性があります。
sudo apt-get update
次に、このコマンドで GNU コンパイラ、make
、および GDB デバッガーをインストールします。
sudo apt-get install build-essential gdb
CMake プロジェクトを作成する
既存の CMake プロジェクトがない場合は、CMake プロジェクトを作成するの手順に従ってください。
ルートディレクトリに CMakeLists.txt
ファイルがある既存の CMake プロジェクトが既にある場合は、Hello World を構成するに進んでプロジェクトを構成してください。
Hello World を構成する
CMake Tools 拡張機能を使用してプロジェクトをビルドする前に、システム上のコンパイラを認識するように構成する必要があります。VS Code で CMake を構成するには、次の 2 つの方法があります。
- CMake Presets を使用する (推奨)
- CMake Kits/Variants を使用する
CMake Presets を使用して構成する
CMake の構成を管理するには、CMake Presets を使用することをお勧めします。CMake Presets を使用すると、プロジェクトのすべての構成を格納する共通の JSON ファイルを指定できます。このファイルを他のユーザーと、異なる IDE 間で、および異なるオペレーティングシステム間で共有できます。
CMake プロジェクトを作成するの手順に従ってプロジェクトを作成した場合、プロジェクトは CMake Presets を使用するように構成されています。
プロジェクトに CMakePresets.json
ファイルがある場合は、Configure プリセットと Build プリセットを使用して、マシン上でプロジェクトをビルドする方法を指定できます。
プリセットのアクティブな構成は、CMake Tools ビューのプロジェクトステータスで、Configure および Build ノードの下に表示できます。これらのノードはいつでも選択して、Configure および Build プリセットを設定または変更できます。
また、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で CMake: Configure プリセットを選択または CMake: Build プリセットを選択コマンドを実行して、任意のプリセットを設定することもできます。
CMake Kits を使用して構成する
プロジェクトに CMakePresets.json
ファイルがない場合は、キットを使用する必要があります。キットは、プロジェクトのビルドに使用されるコンパイラ、リンカ、その他のツールであるツールチェーンを表します。
キットをスキャンするには
-
コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、CMake: キットを選択を実行します。拡張機能は、コンピューター上のキットを自動的にスキャンし、システム上で見つかったコンパイラのリストを作成します。
-
使用したいコンパイラを選択します。たとえば、インストールされているコンパイラによっては、次のようなものが表示される場合があります。
以前に選択したキットは、CMake Tools ビューのプロジェクトステータスセクションに表示されます。
キットを変更するには、CMake Tools ビューのプロジェクトステータスセクションでキットを選択するか、コマンドパレットからCMake: キットを選択コマンドを再度実行します。探しているコンパイラが見つからない場合は、プロジェクトの cmake-tools-kits.json
ファイルを編集できます。ファイルを編集するには、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、CMake: ユーザーローカル CMake キットを編集コマンドを実行します。
次に、バリアントを選択する必要があります。
バリアントには、プロジェクトをビルドする方法が記述されています。デフォルトでは、CMake Tools 拡張機能は、Debug
、Release
、MinRelSize
、RelWithDebInfo
の 4 つのバリアントを提供します。これらのオプションは次のように動作します。
Debug
: 最適化を無効にし、デバッグ情報を含みます。Release
: 最適化を含みますが、デバッグ情報はありません。MinRelSize
: サイズを最適化します。デバッグ情報はありません。RelWithDebInfo
: 速度を最適化し、デバッグ情報を含みます。
バリアントを選択するには、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、CMake: バリアントを選択コマンドを実行します。
ビルドにデバッグ情報を含めるには、Debug を選択します。
選択したバリアントは、アクティブなキットの隣のステータスバーに表示されます。
CMake: 構成
プリセットまたはキット/バリアントを介して構成設定を選択したら、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、CMake: 構成コマンドを実行してプロジェクトを構成します。これにより、選択した構成を使用して、プロジェクトのビルドフォルダにビルドファイルが生成されます。
Hello World をビルドする
プロジェクトを構成したら、ビルドする準備ができました。コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、CMake: ビルドコマンドを実行するか、ステータスバーからビルドボタンを選択します。
コマンドパレットからCMake: ビルドターゲットを設定を選択することで、ビルドしたいターゲットを選択できます。デフォルトでは、CMake Tools はすべてのターゲットをビルドします。選択されたターゲットは、CMake Tools サイドバーのプロジェクトステータスビューのビルドノードの下に表示され、そこから設定することもできます。
Hello World をデバッグする
プロジェクトを実行およびデバッグするには、main.cpp
を開き、std::cout
の行にブレークポイントを設定します。次に、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、CMake: デバッグを実行します。デバッガーは std::cout
の行で停止します。
F5 を押して続行してください。
これで、VS Code CMake Tools 拡張機能を使用して、Ubuntu で CMake を使って C++ アプリをビルドおよびデバッグすることができました。他のプラットフォームでも手順は同じです。違いは、選択したプラットフォーム用の CMake とコンパイラ/デバッガーのインストール方法です。他のプラットフォームでのコンパイラ/デバッガーのセットアップ手順については、以下を参照してください。
次のステップ
- CMake Tools ドキュメントを参照する
- C++ 拡張機能の概要を確認する