使用Visual Studio进行远程macOS C++开发

最新预览版本的Visual Studio已经可以下载了。那些希望在macOS上开发C++的开发者有福了:在最新版本中,开发者可以使用Visual Studio的CMake inux工具来在Mac平台上做C++开发。虽然需要在Mac上做一些准备工作才能开启这项支持,但是设置好之后,就可以将Mac当做任何其他远程Linux开发平台了。

使用Visual Studio进行远程macOS C++开发_第1张图片

安装

请先安装最新预览版本的Visual Studio 2022,并选择”Linux and embedded development with C++ workload”。你所需要用到的组件都会自动被选择。

使用Visual Studio进行远程macOS C++开发_第2张图片

在Mac上进行设置

为了支持远程开发,Visual Studio需要在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中。
export PATH=
/Applications/CMake.spp/Contents/bin:$PATH

4. 从吉特哈布或者其他包管理器(例如brew)中安装ninja-build工具。如果是直接从吉特哈布上直接安装的话,可以使用下面的命令:

使用Visual Studio进行远程macOS C++开发_第3张图片

5. 接下来是安装lldb-mi,这是lldb调试器的命令行版本。可以从网站上下载这一工具并拷贝执行文件至/usr/local/bin,别忘了要设置相应的执行权限。
sudo cp
~/Downloads/debugAdapters/lldb-mi/bin/lldb-mi /usr/local/bin
sudo chmod +x /usr/local/bin

启用远程连接

确保已经启用了Mac上的远程连接。在”系统偏好”中选择”共享”,然后勾选”远程登录”,这样远程连接就开启了。如果你还需要和一个带有用户界面的应用程序进行远程交互的话,则还需要启用”远程管理”,并在”计算机设置”下启用”VNC viewers”。设置好这些之后,我们就可以从Windows平台上使用VNC客户端来远程访问Mac了。

从Visual Studio中连接

安装好我们需要的工具之后,我们就可以使用Visual Studio中的连接管理器来远程连接Mac了。
在一台Windows电脑上打开 Visual Studio(已经安装了 C++ 和 Linux 工作负载)并从工具>选项>跨平台>连接管理器打开连接管理器。 使用Mac机器名称或IP地址、用户名和密码添加新连接,如下图所示:

使用Visual Studio进行远程macOS C++开发_第4张图片


在 Visual Studio 创建连接后,它可以用作 CMakeSettings.json 或 CMakePresets.json 配置中的 CMake 目标。 下面我将介绍如何使用 CMakePresets.json 设置一个新的 CMake 项目。

一个CMake工程的例子

1. 由于我们在这个例子中使用到了”CMake presets”,因此首先确保Visual Studio 安装中启用了CMakePresets,可以到 工具 > 选项 > CMake > 常规设置中选中“始终使用CMakePresets.json”这个选项。

2. 从 File > New > Project 选择 CMake Project,来创建一个新项目(在这个例子中,我们叫它“CMakeProject90”)。 在默认情况下,该项目将针对“本地计算机”打开。 从“目标系统”下拉列表中选择与上一步中建立的 Mac 系统的连接。


该项目的目标平台将反映此选择并将其标识为 Mac 目标。

输出窗口的CMake窗格将包含复制和CMake配置操作的日志。

使用Visual Studio进行远程macOS C++开发_第5张图片


此时,项目已准备好构建和调试了。

3. 从解决方案资源管理器中打开 CMakeProject.cpp 并在 main 的第一行放置一个断点。 从“选择启动项”下拉列表中选择“CMakeProject90”。 开始调试 (F5)。 Visual Studio 将构建项目(请参阅输出窗口的构建窗格)并在 Mac 上启动调试器。 调试器将停止指向刚刚设置的断点位置的应用程序。

使用Visual Studio进行远程macOS C++开发_第6张图片

Visual Studio 的调试子功能(例如,本地、监视和调用堆栈窗口)现在可用于应用程序的调试阶段。

在Mac上附加调试

Visual Studio 调试器的附加到进程功能也适用于 Mac 平台。

1. 将上述 C++ 应用程序的 main 函数更改如下:

使用Visual Studio进行远程macOS C++开发_第7张图片


保存文件并选择 Debug>Start without Debugging。

2. 选择 Debug>Attach to Process… 在“Attach to Process”对话框中选择连接类型“SSH”。 然后从“连接目标”下拉列表中选择 Mac 连接。 该对话框将使用 Mac 上运行的进程填充“可用进程”显示。

使用Visual Studio进行远程macOS C++开发_第8张图片

选择“附加”。 将弹出“选择代码类型”对话框。 选择“本机 (LLDB)”,然后单击“确定”。

使用Visual Studio进行远程macOS C++开发_第9张图片

调试器现在已附加到 Mac 上的远程进程。 选择 Debug>Break All 开始调试。

使用Visual Studio进行远程macOS C++开发_第10张图片

需要注意的事项

目前仅支持 x64 Mac 进行调试。 这意味着当你尝试在 ARM64 Mac 上进行调试时,必须安装 Rosetta,并且只能调试针对 x64 交叉编译的应用程序。

总结

还是原来的味道,还是熟悉的配方。Visual Studio伴你一路同行,不管你是Windows,Linux,还是Mac。

最后

Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
本文来自:《Visual Studio for remote macOS C++ development》

使用Visual Studio进行远程macOS C++开发_第11张图片

你可能感兴趣的:(Visual,Studio,macos,visual,studio,c++)