Visual Studio C 和 C++ 开发不再仅适用于 Windows。 本教程介绍如何在 Windows 和 Linux 上使用 Visual Studio C++ 进行跨平台开发。 由于它基于 CMake,无需创建或生成 Visual Studio 项目。 打开包含 CMakeLists.txt 文件的文件夹时,Visual Studio 会自动配置 IntelliSense 并生成设置。 可以快速开始在 Windows 上本地编辑、生成和调试代码。 然后,切换配置,在 Linux 上执行相同的操作,所有这些操作都从 Visual Studio 中进行。
本教程介绍如何执行下列操作:
从 GitHub 克隆一个开源 CMake 项目
在 Visual Studio 中打开项目
在 Windows 上生成和调试可执行目标
添加与 Linux 计算机的连接
在 Linux 上生成和调试相同的目标
先决条件
设置适用于跨平台 C++ 开发的 Visual Studio
首先,安装 Visual Studio,然后选择“使用 C++ 的桌面开发”和“使用 C++ 的 Linux 开发”工作负载。 此最小安装仅为 3 GB。 根据下载速度,安装不应超过 10 分钟。
设置适用于跨平台 C++ 开发的 Linux 计算机
Visual Studio 不需要任何特定的 Linux 发行版。 OS 可在物理计算机上、VM 或云中运行。 也可以使用适用于 Linux 的 Windows 子系统 (WSL)。 但是,在本教程中,需要一个图形环境。 不建议在此处使用 WSL,因为它主要用于命令行操作。
Visual Studio 在 Linux 计算机上需要这些工具:C++ 编译器、gdb、ssh、rsync、make 和 zip。 在基于 Debian 的系统上,可以使用此命令安装这些依赖项:
sudo apt install -y openssh-server build-essential gdb rsync make zip
Visual Studio 需要有已启用服务器模式(至少为 3.8)的 Linux 计算机上的最新 CMake 版本。 Microsoft 生成可以在任何 Linux 发行版上安装的通用 CMake 版本。 建议使用此版本以确保拥有最新功能。 可从 GitHub 上的 CMake 存储库 Microsoft 分支获得 CMake 二进制文件。 转到该页面并下载与 Linux 计算机上的系统架构匹配的版本,然后将其标记为可执行文件:
wget <path to binary>
chmod +x cmake-3.11.18033000-MSVC_2-Linux-x86_64.sh
完成此操作后,配置 IntelliSense。 可以生成项目,并调试应用程序。 Visual Studio 现在可以根据 CMakeLists 文件中指定的目标显示解决方案的逻辑视图。
使用“解决方案资源管理器”中的“解决方案和文件夹”按钮切换到 CMake 目标视图。
下面是 Bullet SDK 的视图:
目标视图提供了此源基础内容更直观的视图。 你可以看到一些目标是库,其他目标是可执行文件。
在 CMake 目标视图中展开节点以查看其源代码文件,无论这些文件位于磁盘上的哪个位置。
添加显式的 Windows x64-Debug 配置
Visual Studio 为 Windows 创建默认 x64-Debug 配置。 Visual Studio 可借助配置了解将在 CMake 中使用的平台目标。 磁盘上未显示默认配置。 显式添加配置时,Visual Studio 会创建名为 CMakeSettings.json 的文件。 其中填充了所指定的所有配置的设置。
启动并调试应用程序。 打开工具栏中的“选择启动项”下拉列表,然后选择 AppBasicExampleGui。 接下来,选择工具栏中的绿色播放图标,或按 F5。 这将在远程 Linux 计算机上生成应用程序及其依赖项,然后使用附加的 Visual Studio 调试器启动。 在远程 Linux 计算机上,你应看到一个应用程序窗口。
将鼠标移动到应用程序窗口,然后单击按钮。 命中断点。 程序执行暂停,Visual Studio 回到前台,你将看到该断点。 你还应看到 Visual Studio 中出现了一个 Linux 控制台窗口。 此窗口提供远程 Linux 计算机的输出,并且还可接受 stdin 的输入。 与任何 Visual Studio 窗口一样,你可以将其停靠在你喜欢的位置。 在未来的会话中保留其位置。