教學課程:在遠端 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 建置工具:
- 執行 Visual Studio 安裝程式。 如果您尚未安裝 Visual Studio,請參閱 安裝 Visual Studio
- 在Visual Studio 安裝程式主畫面上,選擇 [ 修改 ]。
- 從頂端的選項中,選擇 [個別元件 ]。
- 向下捲動至 編譯器、建置工具和執行時間區 段。
- 確定已選取下列專案:
- 適用于 Windows 的 C++ CMake 工具
- MSVC v142 - VS 2019 C++ ARM64 建置工具 (最新) 請務必選擇
ARM64
建置工具,而不是ARM
建置工具(尋找 64),並選擇隨附VS 2019
的版本。
- 選取 [修改 ] 以安裝工具。
在遠端電腦上
- 在遠端電腦上安裝遠端工具。 在本教學課程中,請遵循下載並安裝遠端工具中的 指示來安裝 ARM64 工具 。
- 在遠端電腦上啟動並設定遠端偵錯程式。 在本教學課程中,請遵循在遠端 Windows 電腦上設定遠端偵錯程式的 指示 進行。
建立 CMake 專案
在 Windows 主機電腦上:
- 執行 Visual Studio
- 從主功能表中,選取 [ 檔案 > 新 > 專案 ]。
- 選取 [CMake 專案 > ] [下一步]
- 為專案指定名稱,然後選擇位置。 然後選取建立。
提供 Visual Studio 一些時間以建立專案並填入 方案總管 。
設定 ARM64
若要以 ARM64 Windows 電腦為目標,您必須使用 ARM64 建置工具進行建置。
選取 [Visual Studio 組態 ] 下拉式清單,然後選取 [ 管理組態 ]。
選取 [新增組態] 來新增組態 (綠色 + 按鈕)。
在 出現的 CMake設定 對話方塊中,選取 arm64-debug ,然後選擇 [ 選取 ]:
此命令會將名為 arm64-Debug
的偵錯組態新增至您的 CmakeSettings.json
檔案。 此組態名稱是唯一且易記的名稱,可讓您更輕鬆地在 [ 組態 ] 下拉式清單中識別這些設定。
[ 工具組 ] 下拉式清單設定為 [msvc_arm64_x64 ]。 您的設定現在看起來應該像這樣:
注意
在 [ 工具組 ] 下拉式清單中, msvc_arm64 選取 32 位主機工具以交叉編譯至 ARM64,而 msvc_arm64 x64 會選取 64 位主機工具,以交叉編譯至 ARM64,這是您將在本教學課程中執行的作業。 如需可用工具組環境的詳細資訊,請參閱 預先定義的環境 。
儲存CMakeSettings.json
檔案。 在 [組態] 下拉式清單中,選取 arm64-debug 。 (儲存檔 CMakeSettings.json
案後可能需要一點時間,檔案才會出現在清單中):
新增偵錯組態檔
接下來,新增設定資訊,告知 Visual Studio 如何尋找遠端電腦,以及其他組態詳細資料。
選取 [ 切換 檢視] 按鈕,將方案總管 檢視變更為 目標檢視:
然後,在 方案總管 中,按兩下 [CMake 目標檢視 ] 以查看專案。
開啟專案資料夾(在此範例中為 CMakeProject3 Project ),然後以滑鼠右鍵按一下可執行檔,然後選取 [ 新增偵錯組態 ]:
此命令會在 launch.vs.json
專案中建立檔案。 開啟它並變更下列專案以啟用遠端偵錯:
projectTarget
:如果您根據上述指示,從 方案總管 目標檢視新增偵錯組態檔,就會為您設定此值。remoteMachineName
:設定為遠端 ARM64 機器或其電腦名稱稱的 IP 位址。
如需設定的詳細資訊 launch.vs.json
,請參閱 launch.vs.json
架構參考 。
注意
如果您使用資料夾檢視,而不是方案總管中的 目標檢視,請以滑鼠右鍵按一下 CMakeLists.txt
檔案,然後選取 [ 新增偵錯組態 ]。 此體驗與以下列方式從目標檢視新增偵錯組態不同:
- 系統會要求您選取偵錯工具(選取 C/C++ 遠端 Windows 偵錯 )。
- Visual Studio 會在檔案中
launch.vs.json
提供較少的組態範本資訊,因此您必須自行新增。 您必須提供remoteMachineName
和projectTarget
專案。 當您從目標檢視新增組態時,只需要指定remoteMachineName
。 projectTarget
如需設定值,請檢查啟動專案下拉式清單以取得目標的唯一名稱,例如,在本教學課程中為CMakeProject3.exe
'。
在遠端 Windows 電腦上啟動遠端偵錯程式監視器
執行 CMake 專案之前,請確定 Visual Studio 2019 遠端偵錯程式正在遠端 Windows 電腦上執行。 視您的驗證情況而定,您可能需要變更遠端偵錯程式選項。
例如,在遠端電腦上,從Visual Studio 遠端偵錯工具功能表列選取 [工具 > 選項]。 設定驗證模式 以符合您的環境設定方式:
然後,在主機電腦上的 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
名稱:
若要開始偵錯,請在 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 電腦上:
主機電腦上的 Visual Studio 應該在 的 return 0;
中斷點停止。
您的收獲
在本教學課程中,您已建立 CMake 專案、將其設定為在 ARM64 上建置 Windows,並在遠端 ARM64 Windows 電腦上對其進行偵錯。
下一步
在 Visual Studio 中深入了解設定和偵錯 CMake 專案:
CMake Projects in Visual Studio (Visual Studio 中的 CMake 專案)
自訂 CMake 建置設定
設定 CMake 偵錯工作階段
CMake 預先定義組態參考
launch.vs.json
架構參考