VS Codeのエージェントモードを拡張するには、を試してください!

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 全般の詳細については、CMake Tools for Visual Studio Code のドキュメントを参照してください。

前提条件

Ubuntu でこのチュートリアルを完了するには、以下をインストールしてください。

  1. Visual Studio Code.

  2. VS Code 用 C++ 拡張機能[拡張機能] ビュー (⇧⌘X (Windows, Linux Ctrl+Shift+X)) で 'c++' を検索して C/C++ 拡張機能をインストールします。

    C/C++ extension

  3. VS Code 用 CMake Tools 拡張機能[拡張機能] ビュー (⇧⌘X (Windows, Linux Ctrl+Shift+X)) で 'CMake tools' を検索して CMake Tools 拡張機能をインストールします。

    CMake tools extension

  4. また、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 プリセットの使用 (推奨)
  • CMake Kits/Variants の使用

CMake プリセットを使用した構成

CMake 構成の管理には、CMake プリセットの使用をお勧めします。CMake プリセットを使用すると、プロジェクトのすべての構成を保存する共通の JSON ファイルを指定できます。このファイルを他の人と、異なる IDE 間で、また異なるオペレーティング システム間で共有できます。

CMake プロジェクトの作成の手順に従ってプロジェクトを作成した場合、プロジェクトは CMake プリセットを使用するように構成されています。

プロジェクトに CMakePresets.json ファイルがある場合は、Configure プリセットと Build プリセットを使用して、マシン上でプロジェクトをビルドする方法を指定できます。

プリセットのアクティブな構成は、CMake Tools ビューのプロジェクト ステータスの [Configure][Build] ノードで確認できます。これらのノードをいつでも選択して、Configure および Build プリセットを設定または変更できます。

CMake Side Panel with presets

また、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で [CMake: Select Configure Preset] または [CMake: Select Build Preset] コマンドを実行して、任意のプリセットを設定することもできます。

CMake Select presets

CMake Kits を使用した構成

プロジェクトに CMakePresets.json ファイルがない場合は、kit を使用する必要があります。kit は、プロジェクトをビルドするために使用されるコンパイラ、リンカー、およびその他のツールであるツールチェーンを表します。

kit をスキャンするには

  1. コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Select a Kit] を実行します。拡張機能はコンピューター上の kit を自動的にスキャンし、システム上で見つかったコンパイラのリストを作成します。

  2. 使用したいコンパイラを選択します。たとえば、インストールされているコンパイラによっては、次のようなものが表示される場合があります。

    Select the kit

    以前に選択した kit が、CMake Tools ビューの [プロジェクト ステータス] セクションに表示されるようになります。

    Selected kit in Sidebar

kit を変更するには、CMake Tools ビューの [プロジェクト ステータス] セクションで kit を選択するか、コマンド パレットから再度 [CMake: Select a Kit] コマンドを実行します。探しているコンパイラが表示されない場合は、プロジェクト内の cmake-tools-kits.json ファイルを編集できます。ファイルを編集するには、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Edit User-Local CMake Kits] コマンドを実行します。

次に、variant を選択する必要があります。

variant には、プロジェクトをビルドする方法に関する指示が含まれています。デフォルトでは、CMake Tools 拡張機能は 4 つの variant を提供し、それぞれがデフォルトのビルド タイプに対応しています: DebugReleaseMinRelSizeRelWithDebInfo。これらのオプションは次のことを行います。

Debug: 最適化を無効にし、デバッグ情報を含みます。Release: 最適化を含みますが、デバッグ情報は含みません。MinRelSize: サイズを最適化します。デバッグ情報は含みません。RelWithDebInfo: 速度を最適化し、デバッグ情報を含みます。

variant を選択するには、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Select Variant] コマンドを実行します。

Select variant

ビルドにデバッグ情報を含めるには Debug を選択します。

Select debug variant type

選択した variant は、ステータス バーのアクティブな kit の横に表示されます。

CMake: Configure

プリセットまたは kits/variants を介して構成設定を選択したので、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Configure] コマンドを実行してプロジェクトを構成します。これにより、選択した構成を使用して、プロジェクトのビルド フォルダーにビルド ファイルが生成されます。

hello world のビルド

プロジェクトを構成した後、ビルドの準備が整いました。コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開いて [CMake: Build] コマンドを実行するか、ステータス バーから [ビルド] ボタンを選択します。

Build

コマンド パレットから [CMake: Set Build Target] を選択することで、ビルドしたいターゲットを選択できます。デフォルトでは、CMake Tools はすべてのターゲットをビルドします。選択されたターゲットは、CMake Tools サイドバーの [プロジェクト ステータス] ビューの [Build] ノードの下に表示され、そこから設定することもできます。

Build Target

hello world のデバッグ

プロジェクトを実行してデバッグするには、main.cpp を開き、std::cout の行にブレークポイントを設定します。次に、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開いて [CMake: Debug] を実行します。デバッガーは std::cout の行で停止します。

Debug

先に進み、F5 を押して続行してください。

これで、VS Code の CMake Tools 拡張機能を使用して、Ubuntu 上で C++ アプリをビルドおよびデバッグするために CMake を使用しました。手順は他のプラットフォームでも同じです。違いは、選択したプラットフォーム用の CMake とコンパイラ/デバッガーをインストールする方法です。他のプラットフォーム用のコンパイラ/デバッガーの設定手順については、以下を参照してください。

次のステップ