Visual Studio 使用 C++ 的 Linux 开发(WSL)

https://devblogs.microsoft.com/cppblog/c-with-visual-studio-2019-and-windows-subsystem-for-linux-wsl/

其大致原理是:“ Visual Studio 通过 wsl.exe 在本地执行所有命令,并依赖安装在 /mnt 文件夹(例如 /mnt/c/Users...)下的 Windows 驱动器从 WSL 访问本地源文件。rsync 和 zip 允许 Visual Studio 将头文件从 WSL 实例提取到 Windows 文件系统以用于 IntelliSense。由于无法从 Windows 看到 WSL 的根文件系统,因此在 WSL 内部完成了本地 rsync 复制,以将头文件复制到 Windows 可见位置。这是 Visual Studio 为配置 IntelliSense for Linux 连接而执行的一次性操作。”

我们要将 WSL 安装配置为与 Visual Studio 一起使用,WSL 需要安装以下工具:编译器(GCC 或 Clang)、gdb、rsync 和 zip。如果还使用 CMake,那么还需要安装底层构建系统(Ninja 或 Unix Makefiles)。我们可以使用以下命令将它们安装:

sudo apt-get install g++ gdb make ninja-build rsync zip cmake

① 下载、安装和设置 Linux 工作负载

https://docs.microsoft.com/zh-cn/cpp/linux/download-install-and-setup-the-linux-development-workload?view=msvc-160

② 创建、运行和调试 Linux MSBuild C++ 项目

https://docs.microsoft.com/zh-cn/cpp/linux/create-a-new-linux-project?view=msvc-160

在解决方案资源管理器中右键单击项目并选择“属性”以打开项目属性页,在打开的对话框中,将看到“General”属性页。在此页面上,有一个“平台工具集”选项。将其从“GCC for Remote Linux”更改为“GCC for Windows Subsystem for Linux”。如果是使用 Clang 进行构建,那么可以选择“Clang for Windows Subsystem for Linux”工具集。

③ Linux 控制台

按F5开始调试,我们可以在 Linux 控制台窗口 中看到程序的输出。(不清楚为什么按Ctrl+F5却没有输出?)

我们可以使用 Linux 控制台 与应用进行交互,控制台将显示来自目标计算机的全部控制台输出并接收输入,然后将其发送到目标计算机。

C++ 与 Visual Studio 2019 和 WSL的更多相关文章

  1. C++ 与 Visual Studio 2019 和 WSL(四)——库组件

    C++ 与 Visual Studio 2019 和 WSL (库组件) Reference 在 C++ 项目中使用库和组件 | Microsoft Docs 演练:创建和使用自己的动态链接库 (C+ ...

  2. C++ 与 Visual Studio 2019 和 WSL(二)

    终端 A more integrated terminal experience | Visual Studio Blog (microsoft.com) Say hello to the new V ...

  3. C++ 与 Visual Studio 2019 和 WSL(三)

    头文件 如果不小心修改了 Linux C/C++ 标准头文件,可以下面这样操作进行恢复: 项目 → 重新扫描解决方案

  4. C++ 与 Visual Studio 2022 和 WSL(五)——WSL2

    Build and Debug C++ with WSL 2 Distributions and Visual Studio 2022 References Build and Debug C++ w ...

  5. Visual Studio 2019 发布活动 - 2019 年 4 月 2 日

    Visual Studio 2019 发布活动 2019 年 4 月 2 日,星期二 | 上午 9:00 (PT) 围观: https://visualstudio.microsoft.com/zh- ...

  6. Visual Studio 2019 正式发布,重磅更新,支持live share

    如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 2019 for Mac. Visual Studio 2019 下载地址:htt ...

  7. “宇宙最强” IDE,Visual Studio 2019 正式发布

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 本文由葡萄城翻译并发布 今天凌晨Visual Studio 2019已经正式发布,现在已经可以下载了.使用V ...

  8. Visual Studio 2019 使用 Live Share

    一.前言 Visual Studio 2019 在今天发布(北京时间)了,这次带来了一个比较有趣的 Live Share 功能,使用它可以进行更好的协作开发.主要功能: 更多资料可看官方介绍: Vis ...

  9. Visual Studio 2019 正式版 更新内容

    大早上更新了Visual Studio 2019, 试用一下 一.界面改变 1.项目创建界面 首先启动界面改变就不说了,创建项目的界面做了较大改变,感觉在向vs for mac 靠拢 ,而后者感觉像x ...

随机推荐

  1. HCNP Routing&Switching之OSPF外部路由类型以及forwarding address

    前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...

  2. 搭建私服仓库:(一)Windows安装Nuxus

    Nexus下载 官网.官网下载.百度云盘 提取码:su33 将nexus下载下来,以2.14.5的windows版本为例子(3.x暂时下载不下来,迅雷会员都不行) 下载后进行解压,得到以下目录: 其中 ...

  3. Spring系列之不同数据库异常如何抽象的?

    前言 使用Spring-Jdbc的情况下,在有些场景中,我们需要根据数据库报的异常类型的不同,来编写我们的业务代码.比如说,我们有这样一段逻辑,如果我们新插入的记录,存在唯一约束冲突,就会返回给客户端 ...

  4. [Elasticsearch] ES更新问题踩坑记录

    问题描述 我们有个系统设计的时候针对Hive创建表.删除表, 需要更新ES中的一个状态,标记是否删除,在几乎同时执行两条下面的语句的时候,发现在ES 中出现表即使被创建了还是无法被查询到的情况,针对该 ...

  5. 【死磕NIO】— NIO基础详解

    Netty 是基于Java NIO 封装的网络通讯框架,只有充分理解了 Java NIO 才能理解好Netty的底层设计.Java NIO 由三个核心组件组件: Buffer Channel Sele ...

  6. 创建 Spring容器的三种方式

    一.src路径下打包完在war包的classes层级下 1.Spring容器创建的三种方式 创建Bean容器之后创建对象: 其中第三种使用的是BeanFactory对象 2.spring通过配置文件用 ...

  7. 数组字符串json之间的相互转换

    数组转字符串 var arr = [1,2,3,4,'巴德','merge']; var str = arr.join(','); console.log(str); // 1,2,3,4,巴德,me ...

  8. MapReduce 示例:减少 Hadoop MapReduce 中的侧连接

    摘要:在排序和reducer 阶段,reduce 侧连接过程会产生巨大的网络I/O 流量,在这个阶段,相同键的值被聚集在一起. 本文分享自华为云社区<MapReduce 示例:减少 Hadoop ...

  9. python中reduce filter map lambda函数

    lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expr ...

  10. 【PHP数据结构】栈的相关逻辑操作

    对于逻辑结构来说,我们也是从最简单的开始.堆栈.队列,这两个词对于大部分人都不会陌生,但是,堆和栈其实是两个东西.在面试的时候千万不要被面试官绕晕了.堆是一种树结构,或者说是完全二叉树的结构.而今天, ...