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 でこのチュートリアルを完了するには、以下をインストールしてください。
-
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 プリセットの使用 (推奨)
- CMake Kits/Variants の使用
CMake プリセットを使用した構成
CMake 構成の管理には、CMake プリセットの使用をお勧めします。CMake プリセットを使用すると、プロジェクトのすべての構成を保存する共通の JSON ファイルを指定できます。このファイルを他の人と、異なる IDE 間で、また異なるオペレーティング システム間で共有できます。
CMake プロジェクトの作成の手順に従ってプロジェクトを作成した場合、プロジェクトは CMake プリセットを使用するように構成されています。
プロジェクトに CMakePresets.json
ファイルがある場合は、Configure プリセットと Build プリセットを使用して、マシン上でプロジェクトをビルドする方法を指定できます。
プリセットのアクティブな構成は、CMake Tools ビューのプロジェクト ステータスの [Configure] と [Build] ノードで確認できます。これらのノードをいつでも選択して、Configure および Build プリセットを設定または変更できます。
また、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で [CMake: Select Configure Preset] または [CMake: Select Build Preset] コマンドを実行して、任意のプリセットを設定することもできます。
CMake Kits を使用した構成
プロジェクトに CMakePresets.json
ファイルがない場合は、kit を使用する必要があります。kit は、プロジェクトをビルドするために使用されるコンパイラ、リンカー、およびその他のツールであるツールチェーンを表します。
kit をスキャンするには
-
コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Select a Kit] を実行します。拡張機能はコンピューター上の kit を自動的にスキャンし、システム上で見つかったコンパイラのリストを作成します。
-
使用したいコンパイラを選択します。たとえば、インストールされているコンパイラによっては、次のようなものが表示される場合があります。
以前に選択した kit が、CMake Tools ビューの [プロジェクト ステータス] セクションに表示されるようになります。
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 を提供し、それぞれがデフォルトのビルド タイプに対応しています: Debug
、Release
、MinRelSize
、RelWithDebInfo
。これらのオプションは次のことを行います。
Debug
: 最適化を無効にし、デバッグ情報を含みます。Release
: 最適化を含みますが、デバッグ情報は含みません。MinRelSize
: サイズを最適化します。デバッグ情報は含みません。RelWithDebInfo
: 速度を最適化し、デバッグ情報を含みます。
variant を選択するには、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Select Variant] コマンドを実行します。
ビルドにデバッグ情報を含めるには Debug を選択します。
選択した variant は、ステータス バーのアクティブな kit の横に表示されます。
CMake: Configure
プリセットまたは kits/variants を介して構成設定を選択したので、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、[CMake: Configure] コマンドを実行してプロジェクトを構成します。これにより、選択した構成を使用して、プロジェクトのビルド フォルダーにビルド ファイルが生成されます。
hello world のビルド
プロジェクトを構成した後、ビルドの準備が整いました。コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開いて [CMake: Build] コマンドを実行するか、ステータス バーから [ビルド] ボタンを選択します。
コマンド パレットから [CMake: Set Build Target] を選択することで、ビルドしたいターゲットを選択できます。デフォルトでは、CMake Tools はすべてのターゲットをビルドします。選択されたターゲットは、CMake Tools サイドバーの [プロジェクト ステータス] ビューの [Build] ノードの下に表示され、そこから設定することもできます。
hello world のデバッグ
プロジェクトを実行してデバッグするには、main.cpp
を開き、std::cout
の行にブレークポイントを設定します。次に、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開いて [CMake: Debug] を実行します。デバッガーは std::cout
の行で停止します。
先に進み、F5 を押して続行してください。
これで、VS Code の CMake Tools 拡張機能を使用して、Ubuntu 上で C++ アプリをビルドおよびデバッグするために CMake を使用しました。手順は他のプラットフォームでも同じです。違いは、選択したプラットフォーム用の CMake とコンパイラ/デバッガーをインストールする方法です。他のプラットフォーム用のコンパイラ/デバッガーの設定手順については、以下を参照してください。
次のステップ
- CMake Tools ドキュメントを調べる
- C++ 拡張機能の概要を確認する