教學課程:在遠端 Windows 電腦上偵錯 CMake 專案

本教學課程使用 Windows 上的 Visual Studio C++ 來建立和建置可在遠端 Windows 電腦上部署和偵錯的 CMake 專案。 本教學課程專屬於 Windows ARM64,但步驟可針對其他架構進行一般化。

在 Visual Studio 中,ARM64 的預設偵錯體驗是遠端偵錯 ARM64 Windows 電腦。 設定您的偵錯設定,如本教學課程所示。 否則,當您嘗試偵錯 ARM64 CMake 專案時,您會收到 Visual Studio 找不到遠端電腦的錯誤。

在本教學課程中,您將了解如何:

  • 建立 CMake 專案
  • 設定 CMake 專案以建置 ARM64
  • 設定 CMake 專案以在遠端 ARM64 Windows 電腦上執行
  • 偵錯在遠端 ARM64 Windows 電腦上執行的 CMake 專案

必要條件

在主機電腦上

若要設定 Visual Studio 以進行跨平臺 C++ 開發,請安裝目標架構的建置工具。 在本教學課程中,請執行下列步驟來安裝 ARM64 建置工具:

  1. 執行 Visual Studio 安裝程式。 如果您尚未安裝 Visual Studio,請參閱 安裝 Visual Studio
  2. 在Visual Studio 安裝程式主畫面上,選擇 [ 修改 ]。
  3. 從頂端的選項中,選擇 [個別元件 ]。
  4. 向下捲動至 編譯器、建置工具和執行時間區 段。
  5. 確定已選取下列專案:
    • 適用于 Windows 的 C++ CMake 工具
    • MSVC v142 - VS 2019 C++ ARM64 建置工具 (最新) 請務必選擇 ARM64 建置工具,而不是 ARM 建置工具(尋找 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.

選取 [新增組態] 來新增組態 (綠色 + 按鈕)。
出現的 CMake設定 對話方塊中,選取 arm64-debug ,然後選擇 [ 選取 ]:

Add arm64-debug configuration.

此命令會將名為 arm64-Debug 的偵錯組態新增至您的 CmakeSettings.json 檔案。 此組態名稱是唯一且易記的名稱,可讓您更輕鬆地在 [ 組態 ] 下拉式清單中識別這些設定。

[ 工具組 ] 下拉式清單設定為 [msvc_arm64_x64 ]。 您的設定現在看起來應該像這樣:

CMake settings dialog.

注意

在 [ 工具組 ] 下拉式清單中, 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 ),然後以滑鼠右鍵按一下可執行檔,然後選取 [ 新增偵錯組態 ]:

Select add debug configuration.

此命令會在 launch.vs.json 專案中建立檔案。 開啟它並變更下列專案以啟用遠端偵錯:

  • projectTarget:如果您根據上述指示,從 方案總管 目標檢視新增偵錯組態檔,就會為您設定此值。
  • remoteMachineName:設定為遠端 ARM64 機器或其電腦名稱稱的 IP 位址。

如需設定的詳細資訊 launch.vs.json ,請參閱 launch.vs.json 架構參考

注意

如果您使用資料夾檢視,而不是方案總管中的 目標檢視,請以滑鼠右鍵按一下 CMakeLists.txt 檔案,然後選取 [ 新增偵錯組態 ]。 此體驗與以下列方式從目標檢視新增偵錯組態不同:

  • 系統會要求您選取偵錯工具(選取 C/C++ 遠端 Windows 偵錯 )。
  • Visual Studio 會在檔案中 launch.vs.json 提供較少的組態範本資訊,因此您必須自行新增。 您必須提供 remoteMachineNameprojectTarget 專案。 當您從目標檢視新增組態時,只需要指定 remoteMachineName
  • projectTarget如需設定值,請檢查啟動專案下拉式清單以取得目標的唯一名稱,例如,在本教學課程中為 CMakeProject3.exe '。

在遠端 Windows 電腦上啟動遠端偵錯程式監視器

執行 CMake 專案之前,請確定 Visual Studio 2019 遠端偵錯程式正在遠端 Windows 電腦上執行。 視您的驗證情況而定,您可能需要變更遠端偵錯程式選項。

例如,在遠端電腦上,從Visual Studio 遠端偵錯工具功能表列選取 [工具 > 選項]。 設定驗證模式 以符合您的環境設定方式:

Remote debugger authentication options.

然後,在主機電腦上的 Visual Studio 中,更新 launch.vs.json 檔案以符合。 例如,如果您在遠端偵錯程式上選擇 [無驗證 ],請將 新增 "authenticationType": "none" 至 區段 launch.vs.json ,以更新 launch.vs.json 專案中的 configurations 檔案。 否則, "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 工具列上,使用 [ 啟動專案 ] 下拉式清單來選取您在 "name" 檔案中指定的 launch.vs.json 名稱:

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"
  • 如果遠端偵錯程式上的驗證類型設定為 [無驗證 ],您應該已在 "authenticationType": "none" 檔案中 launch.vs.json 設定。
  • 如果您使用 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 專案: