最新预览版本的Visual Studio已经可以下载了。那些希望在macOS上开发C++的开发者有福了:在最新版本中,开发者可以使用Visual Studio的CMake inux工具来在Mac平台上做C++开发。虽然需要在Mac上做一些准备工作才能开启这项支持,但是设置好之后,就可以将Mac当做任何其他远程Linux开发平台了。
请先安装最新预览版本的Visual Studio 2022,并选择”Linux and embedded development with C++ workload”。你所需要用到的组件都会自动被选择。
为了支持远程开发,Visual Studio需要在Mac上安装一些工具。
如果你之前曾在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工具。如果是直接从吉特哈布上直接安装的话,可以使用下面的命令:
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中的连接管理器来远程连接Mac了。
在一台Windows电脑上打开 Visual Studio(已经安装了 C++ 和 Linux 工作负载)并从工具>选项>跨平台>连接管理器打开连接管理器。 使用Mac机器名称或IP地址、用户名和密码添加新连接,如下图所示:
在 Visual Studio 创建连接后,它可以用作 CMakeSettings.json 或 CMakePresets.json 配置中的 CMake 目标。 下面我将介绍如何使用 CMakePresets.json 设置一个新的 CMake 项目。
1. 由于我们在这个例子中使用到了”CMake presets”,因此首先确保Visual Studio 安装中启用了CMakePresets,可以到 工具 > 选项 > CMake > 常规设置中选中“始终使用CMakePresets.json”这个选项。
2. 从 File > New > Project 选择 CMake Project,来创建一个新项目(在这个例子中,我们叫它“CMakeProject90”)。 在默认情况下,该项目将针对“本地计算机”打开。 从“目标系统”下拉列表中选择与上一步中建立的 Mac 系统的连接。
该项目的目标平台将反映此选择并将其标识为 Mac 目标。
输出窗口的CMake窗格将包含复制和CMake配置操作的日志。
此时,项目已准备好构建和调试了。
3. 从解决方案资源管理器中打开 CMakeProject.cpp 并在 main 的第一行放置一个断点。 从“选择启动项”下拉列表中选择“CMakeProject90”。 开始调试 (F5)。 Visual Studio 将构建项目(请参阅输出窗口的构建窗格)并在 Mac 上启动调试器。 调试器将停止指向刚刚设置的断点位置的应用程序。
Visual Studio 的调试子功能(例如,本地、监视和调用堆栈窗口)现在可用于应用程序的调试阶段。
Visual Studio 调试器的附加到进程功能也适用于 Mac 平台。
1. 将上述 C++ 应用程序的 main 函数更改如下:
保存文件并选择 Debug>Start without Debugging。
2. 选择 Debug>Attach to Process… 在“Attach to Process”对话框中选择连接类型“SSH”。 然后从“连接目标”下拉列表中选择 Mac 连接。 该对话框将使用 Mac 上运行的进程填充“可用进程”显示。
选择“附加”。 将弹出“选择代码类型”对话框。 选择“本机 (LLDB)”,然后单击“确定”。
调试器现在已附加到 Mac 上的远程进程。 选择 Debug>Break All 开始调试。
目前仅支持 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》