ARM64平臺粉墨登場
在Visual Studio 2019 v16.9 Preview 3中,我們添加了對CMake工程部署到一臺遠端Windows系統的支援,另外開發者可以藉助Visual Studio remote tools來對程式進行除錯。CMake工程開發者現在可以透過交叉編譯(使用cl或者clang-cl)來將ARM64版本Windows作為目標執行平臺,並在Visual Studio中部署,除錯應用程式。
可以透過這份教程《Tutorial: Debug a CMake project on a remote Windows machine》來了解上述工作流程。教程主要面向ARM64開發平臺,但是其中的一些步驟對於其他架構的Windows平臺都是通用的,所以對於其他平臺的開發者來說,還是非常有借鑑意義的。
在開始之前,你需要安裝ARM64編譯工具到開發機上。在這個場景下,你的開發機就是你進行程式開發和安裝Visual Studio的機器。另外,你還需要安裝和配置remote tools(遠端工具集)到目標機。這裡說的目標機是指一臺ARM64架構的Windows系統,在目標機上會執行應用程式並可以進行除錯。
下圖展示瞭如何安裝最新版本的ARM64編譯工具到你的開發機。
面向ARM64進行CMake工程交叉編譯現在,你可以向CMake配置編輯器中新增一個新的CMake配置,這個新的配置的型別可以是arm64-Debug,也可以是arm64-Release。也可以修改現有的CMake配置以編譯msvc_arm64_x64,clang_cl_arm64_x64,msvc_arm64或者clang_cl_arm64工具集。
arm64_x64工具集將會選擇64位的開發機工具來面向ARM64平臺進行交叉編譯,而arm64工具集則使用32位的開發機工具來進行交叉編譯,如下圖所示:
在一臺遠端Windows系統上除錯CMake工程向launch.vs.json配置檔案中新增一項型別為C/C++ Remote Windows Debug的除錯配置項,這樣就可以在一臺遠端Windows系統上進行除錯了。你將需要設定remoteMachineName為遠端ARM64系統的IP地址。你可能還需要升級authenticationType的值為匹配的遠端系統的認知模式。更多資訊請檢視教程《remote debugging tutorial》。
請注意,Visual Studio對遠端Linux開發的支援需要你在Connection Manager中新增一個到遠端系統的SSH連線。而遠端Windows系統則並不需要你使用Connection Manager,因為它使用了Windows remote debugger(msvsmon.exe)來替代SSH進行通訊。
當你執行應用程式時,Visual Studio將會在開發機上交叉編譯程式程式碼,然後將程式遠端部署到目標機,隨即開始在遠端目標機上進行除錯。你可以像本機開發一樣,進行斷點除錯並使用Visual Studio中其他的除錯功能。如下圖所示:
總結MS: 讓我們,再一次地,熱情地,擁抱Linux和開源吧。(不擁抱不行啊)
最後Microsoft Visual C++團隊的部落格是我非常喜歡的部落格之一,裡面有很多關於Visual C++的知識和最新開發進展。大浪淘沙,如果你對Visual C++這門古老的技術還是那麼感興趣,則可以經常去他們那(或者我這)逛逛。本文來自:《Windows ARM64 support for CMake projects in Visual Studio》