当前位置: 附加器 >> 附加器前景 >> 使用VisualStudio进行远程ma
最新预览版本的VisualStudio已经可以下载了。那些希望在macOS上开发C++的开发者有福了:在最新版本中,开发者可以使用VisualStudio的CMakeinux工具来在Mac平台上做C++开发。虽然需要在Mac上做一些准备工作才能开启这项支持,但是设置好之后,就可以将Mac当作任何其他远程Linux开发平台了。
安装
请先安装最新预览版本的VisualStudio,并选择”LinuxandembeddeddevelopmentwithC++workload”。你所需要用到的组件都会自动被选择。
在Mac上进行设置
为了支持远程开发,VisualStudio需要在Mac上安装一些工具。
C++工具
如果你之前曾在Mac上进行过C++开发,则你应该已经安装了所有需要的组件。如果没有的话,则有些工具,例如rsync应该已经安装了,但是还有一些其他的工具需要安装,例如:编译器工具,cmake,ninja-build和lldb-mi。可以使用下面的指令在Mac上搭建初始开发环境。
1.请确保你启用了DevToolsSecurity。DevToolsSecurity–enable
2.使用xcode-select来安装编译工具。xcode-select–install
3.接下来是安装CMake。请参考”Installing
CMake”中的安装步骤进行CMake的安装。记得需要更新PATH环境变量来包含CMake的位置。例如,当使用zsh时,添加下面的代码到~/.zshenv,如果使用的是bash的话,则需要将它添加到~/.bashrc中。exportPATH=/Applications/CMake.spp/Contents/bin:PATH
4.从吉特哈布或者其他包管理器(例如brew)中安装ninja-build工具。如果是直接从吉特哈布上直接安装的话,可以使用下面的命令:
5.接下来是安装lldb-mi,这是lldb调试器的命令行版本。可以从网站上下载这一工具并拷贝执行文件至/usr/local/bin,别忘了要设置相应的执行权限。sudocp~/Downloads/debugAdapters/lldb-mi/bin/lldb-mi/usr/local/binsudochmod+x/usr/local/bin
启用远程连接
确保已经启用了Mac上的远程连接。在”系统偏好”中选择”共享”,然后勾选”远程登录”,这样远程连接就开启了。如果你还需要和一个带有用户界面的应用程序进行远程交互的话,则还需要启用”远程管理”,并在”计算机设置”下启用”VNCviewers”。设置好这些之后,我们就可以从Windows平台上使用VNC客户端来远程访问Mac了。
从VisualStudio中连接
安装好我们需要的工具之后,我们就可以使用VisualStudio中的连接管理器来远程连接Mac了。在一台Windows电脑上打开VisualStudio(已经安装了C++和Linux工作负载)并从工具选项跨平台连接管理器打开连接管理器。使用Mac机器名称或IP地址、用户名和密码添加新连接,如下图所示:
在VisualStudio创建连接后,它可以用作CMakeSettings.json或CMakePresets.json配置中的CMake目标。下面我将介绍如何使用CMakePresets.json设置一个新的CMake项目。
一个CMake工程的例子
1.由于我们在这个例子中使用到了”CMakepresets”,因此首先确保VisualStudio安装中启用了CMakePresets,可以到工具选项CMake常规设置中选中“始终使用CMakePresets.json”这个选项。
2.从FileNewProject选择CMakeProject,来创建一个新项目(在这个例子中,我们叫它“CMakeProject90”)。在默认情况下,该项目将针对“本地计算机”打开。从“目标系统”下拉列表中选择与上一步中建立的Mac系统的连接。
该项目的目标平台将反映此选择并将其标识为Mac目标。
输出窗口的CMake窗格将包含复制和CMake配置操作的日志。
此时,项目已准备好构建和调试了。
3.从解决方案资源管理器中打开CMakeProject.cpp并在main的第一行放置一个断点。从“选择启动项”下拉列表中选择“CMakeProject90”。开始调试(F5)。VisualStudio将构建项目(请参阅输出窗口的构建窗格)并在Mac上启动调试器。调试器将停止指向刚刚设置的断点位置的应用程序。
VisualStudio的调试子功能(例如,本地、监视和调用堆栈窗口)现在可用于应用程序的调试阶段。
在Mac上附加调试
VisualStudio调试器的附加到进程功能也适用于Mac平台。
1.将上述C++应用程序的main函数更改如下:
保存文件并选择DebugStartwithoutDebugging。
2.选择DebugAttachtoProcess…在“AttachtoProcess”对话框中选择连接类型“SSH”。然后从“连接目标”下拉列表中选择Mac连接。该对话框将使用Mac上运行的进程填充“可用进程”显示。
选择“附加”。将弹出“选择代码类型”对话框。选择“本机(LLDB)”,然后单击“确定”。
调试器现在已附加到Mac上的远程进程。选择DebugBreakAll开始调试。
需要注意的事项
目前仅支持x64Mac进行调试。这意味着当你尝试在ARM64Mac上进行调试时,必须安装Rosetta,并且只能调试针对x64交叉编译的应用程序。
总结
还是原来的味道,还是熟悉的配方。VisualStudio伴你一路同行,不管你是Windows,Linux,还是Mac。