チュートリアル: リモート Windows マシンで CMake プロジェクトをデバッグする

このチュートリアルでは、Windows 上で Visual Studio C++ を使用して、リモートの Windows コンピューターで展開してデバッグできる CMake プロジェクトを作成およびビルドします。 このチュートリアルは Windows ARM64 に固有ですが、手順は他のアーキテクチャ用に一般化することができます。

Visual Studio では、ARM64 の既定のデバッグ エクスペリエンスは ARM64 Windows コンピューターのリモート デバッグです。 ご自分のデバッグ設定を、このチュートリアルで示すように構成します。 そうしないと、ARM64 CMake プロジェクトをデバッグしようとした場合に、Visual Studio でリモート マシンを見つけることができないというエラーが表示されます。

このチュートリアルで学習する内容は次のとおりです。

  • CMake プロジェクトを作成する
  • ARM64 用にビルドするように CMake プロジェクトを構成する
  • リモートの ARM64 Windows コンピューターで実行するように CMake プロジェクトを構成する
  • リモートの ARM64 Windows コンピューターで実行されている CMake プロジェクトをデバッグする

前提条件

ホスト コンピューター上

クロスプラットフォームの C++ 開発用に Visual Studio を設定するには、ターゲット アーキテクチャ用のビルド ツールをインストールします。 このチュートリアルでは、次の手順を行って ARM64 ビルド ツールをインストールします。

  1. Visual Studio インストーラーを実行します。 Visual Studio をまだインストールしていない場合は、「Visual Studio のインストール」を参照してください
  2. Visual Studio インストーラーのホーム画面で、[変更] を選択します。
  3. 上部の選択肢から、[個々のコンポーネント] を選びます。
  4. [コンパイラ、ビルド ツール、およびランタイム] セクションまで下にスクロールします。
  5. 次のものが選択されていることを確認します。
    • Windows 用 C++ CMake ツール
    • MSVC v142 - VS 2019 C++ ARM64 ビルド ツール (最新)ARM ビルド ツールではなく、ARM64 ビルド ツールを選択する (64 のものを見つける) ことと、VS 2019 に対応するバージョンを選ぶことが重要です。
  6. [変更] を選択してツールをインストールします。

リモート コンピューター上

  1. リモート コンピューター上にリモート ツールをインストールします。 このチュートリアルでは、「リモート ツールのダウンロードおよびインストール」の手順に従って、ARM64 ツールをインストールします。
  2. リモート コンピューター上でリモート デバッガーを起動して構成します。 このチュートリアルでは、リモートの Windows コンピューターで「リモート デバッガーのセットアップ」の指示に従ってこれを行います。

CMake プロジェクトを作成する

Windows ホスト コンピューター上で次のようにします。

  1. Visual Studio を実行します
  2. メイン メニューから、[ファイル]>[新規作成]>[プロジェクト] の順に選択します。
  3. [CMake プロジェクト]>[次へ] の順に選択します
  4. プロジェクトに名前を付け、場所を選びます。 [作成] を選択します。

しばらくの間、Visual Studio でプロジェクトが作成され、[ソリューション エクスプローラー] が設定されるのを待ちます。

ARM64 用に構成する

ARM64 Windows コンピューターをターゲットとするには、ARM64 ビルド ツールを使用してビルドする必要があります。

Visual Studio の [構成] ドロップダウンを選択し、[構成の管理] を選びます。

Choose Manage Configurations in the Visual Studio configurations drop-down.

[新規構成の追加] (緑の + ボタン) を選択することで新しい構成を追加します。
表示される [CMakeSettings] ダイアログで、[arm64-debug] を選んでから、[選択] を選択します。

Add arm64-debug configuration.

このコマンドにより、arm64-Debug という名前のデバッグ構成がお使いの CmakeSettings.json ファイルに追加されます。 この構成名は、[構成] ドロップダウンでこれらの設定をより簡単に特定できるようにする一意のフレンドリ名です。

[ツールセット] ドロップダウンは [msvc_arm64_x64] に設定されます。 これで、設定はこのようになるはずです。

CMake settings dialog.

Note

[ツールセット] ドロップダウンでは、[msvc_arm64] は、32 ビットのホスト ツールを選択して ARM64 にクロスコンパイルされ、[msvc_arm64 x64] は、64 ビットのホスト ツールを選択して ARM64 にクロスコンパイルされます (このチュートリアルではこれを行います)。 使用可能なツールセット環境の詳細については、「定義済みの環境」を参照してください。

CMakeSettings.json ファイルを保存します。 [構成] ドロップダウン リストから [arm64-debug] を選択します。 (保存した CMakeSettings.json ファイルが一覧に表示されるには、しばらく時間がかかる場合があります):

Ensure that arm64-debug is selected in the Visual Studio configurations drop-down.

デバッグ構成ファイルを追加する

次に、他の構成の詳細と共に、リモート コンピューターを検索する場所を Visual Studio に指示する構成情報を追加します。

[表示の切り替え] ボタンを選択して、[ソリューション エクスプローラー] のビューをターゲット ビューに変更します。

Solution explorer switch view button.

その後、[ソリューション エクスプローラー] で、[CMake ターゲット ビュー] をダブルクリックしてプロジェクトを表示します。

プロジェクト フォルダー (この例では CMakeProject3 Project) を開き、実行可能ファイルを右クリックして、[Add Debug Configuration]\(デバッグ構成の追加\) を選択します。

Select add debug configuration.

このコマンドにより、ご自分のプロジェクトに launch.vs.json ファイルが作成されます。 それを開き、以下のエントリを変更してリモート デバッグを有効にします。

  • projectTarget: この値は、上記の手順に従ってソリューション エクスプローラーのターゲット ビューからデバッグ構成ファイルを追加した場合に自動的に設定されます。
  • remoteMachineName: リモート ARM64 コンピューターの IP アドレス、またはそのコンピューター名を設定します。

launch.vs.json 設定の詳細については、launch.vs.json スキーマ リファレンスに関するページを参照してください。

Note

ソリューション エクスプローラーでターゲット ビューではなくフォルダー ビューを使用する場合は、CMakeLists.txt ファイルを右クリックし、[Add Debug Configuration]\(デバッグ構成の追加\) を選択します。 このエクスペリエンスは、次の方法でターゲット ビューからデバッグ構成を追加することとは異なります。

  • デバッガーを選択するように求められます ([C または C++ リモート Windows デバッグ] を選択する)。
  • Visual Studio により提供される launch.vs.json ファイルの構成テンプレート情報は少ないため、ご自分で追加する必要があります。 remoteMachineNameprojectTarget のエントリを指定する必要があります。 ターゲット ビューから構成を追加する場合、指定する必要があるのは remoteMachineName のみです。
  • projectTarget の設定値については、スタートアップ項目ドロップダウンを確認し、ご自分のターゲットの一意の名前を取得します。たとえば、このチュートリアルでは CMakeProject3.exe です。

リモートの Windows コンピューターでリモート デバッガー モニターを起動する

CMake プロジェクトを実行する前に、リモートの Windows コンピューターで Visual Studio 2019 リモート デバッガーが確実に実行されるようにします。 場合によっては、認証状況に応じて、リモート デバッガーのオプションを変更する必要があります。

たとえば、リモート コンピューター上で、Visual Studio リモート デバッガーのメニュー バーから [ツール]>[オプション] の順に選択します。 お使いの環境の設定方法と一致するように [認証モード] を設定します。

Remote debugger authentication options.

その後、ホスト コンピューター上の Visual Studio で、launch.vs.json ファイルを更新して一致させます。 たとえば、リモート デバッガーで [認証なし] を選択した場合は、"authenticationType": "none"launch.vs.jsonconfigurations セクションに追加して、ご自分のプロジェクトの launch.vs.json ファイルを更新します。 それ以外の場合、"authenticationType" は既定で "windows" に設定されており、明示的に指定する必要はありません。 この例は、認証なしで構成された launch.vs.json ファイルを示しています。

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
        "type": "remoteWindows",
        "authenticationType": "none"
        "name": "CMakeLists.txt",
        "project": "CMakeLists.txt",
        "projectTarget": "CMakeProject3.exe",
        "remoteMachineName": "<ip address goes here>",
        "cwd": "${debugInfo.defaultWorkingDirectory}",
        "program": "${debugInfo.fullTargetPath}",
        "deploy": [],
        "args": [],
        "env": {}
    },
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "CMakeProject3.exe",
      "name": "CMakeProject3.exe"
    }
  ]
}

アプリのデバッグ

ホスト コンピューター上の Visual Studio の [ソリューション エクスプローラー] で、CMake プロジェクトの CPP ファイルを開きます。 [CMake ターゲット ビュー] を表示したままの場合は、(実行可能) ノードを開いて確認する必要があります。

既定の CPP ファイルは、シンプルな hello world コンソール アプリです。 return 0; にブレークポイントを設定します。

Visual Studio のツール バーで、[スタートアップ項目] ドロップダウンを使用して、ご自分の launch.vs.json ファイルで "name" に指定した名前を選択します。

Example startup item dropdown with CMakeProject3.exe selected.

デバッグを開始するには、Visual Studio のツール バーで、[デバッグ]>[デバッグの開始] の順に選択します (または F5 キーを押す)。

開始されない場合は、launch.vs.json ファイルで以下を確実に正しく設定します。

  • "remoteMachineName" は、リモート ARM64 Windows コンピューターの IP アドレス、またはコンピューター名に設定する必要があります。
  • "name" は、Visual Studio のスタートアップ項目ドロップダウンで選択した内容と一致する必要があります。
  • "projectTarget" は、デバッグする CMake ターゲットの名前と一致する必要があります。
  • "type" は、"remoteWindows" である必要があります。
  • リモート デバッガーの認証の種類が [認証なし] に設定されている場合は、launch.vs.json ファイルで "authenticationType": "none" を設定する必要があります。
  • Windows 認証を使用する場合は、メッセージが表示されたら、リモート コンピューターによって認識されるアカウントを使用してサインインします。

プロジェクトがビルドされた後、アプリがリモートの ARM64 Windows コンピューターに表示されるはずです。

Hello CMake console app running on remote Windows ARM64 machine.

ホスト コンピューター上の Visual Studio は、return 0; のブレークポイントで停止する必要があります。

学習した内容

このチュートリアルでは、CMake プロジェクトを作成し、それを ARM64 版 Windows 用にビルドするように構成し、リモートの ARM64 Windows コンピューターでデバッグしました。

次のステップ

Visual Studio での CMake プロジェクトの構成とデバッグについてさらに学習します。