更新日期:2020年1月8日:Visual Studio 2019版本16.1及更高版本 对WSL的本机支持 . 这消除了建立SSH连接的需要,是在WSL上构建和调试的推荐工作流。
这个 Windows Linux子系统(WSL) 在2016年的Build中首次引入,并作为Windows 10周年更新的早期测试版发布。从那时起,WSL团队一直在努力工作,极大地提高了WSL运行越来越多的本机Linux命令行二进制文件和工具的能力,包括大多数主流开发人员工具、平台和语言,以及许多守护程序/服务*包括MySQL、Apache和SSH。
在Visual Studio 2017中使用C++开发人员进行Linux开发,可以使用Visual Studio的全部功能来开发C/C++ Linux。因为WSL只是另一个Linux系统,所以您可以通过以下方法从visualstudio将其作为目标 Linux工作负载使用指南 . 这为您提供了很大的灵活性,使您的整个开发周期都在您的开发机器上本地进行,而不需要单独的VM或机器的复杂性。但是,值得更详细地介绍如何在Bash/WSL上配置SSH。
安装WSL
如果您还没有这样做,您首先需要 启用开发人员模式并安装WSL本身 . 这只需要几秒钟,但确实需要重新启动。您需要使用当前的内部版本或等待的发布 创建者更新到 在VS中对Linux工作负载使用WSL。
当您第一次运行Bash时,您需要按照屏幕上的说明接受Canonical的许可,下载Ubuntu映像,并将其安装到您的计算机上。然后需要选择UNIX用户名和密码。如果您愿意,这不必与您的Windows登录用户名和密码相同。以后使用时只需输入UNIX用户名和密码 苏多 提升命令,或“远程”登录(见下文)。
现在您的机器上有了一个vanilla Ubuntu实例,您可以在其中运行任何ELF-64linux二进制文件,包括使用apt-get下载的文件!
在继续之前,让我们安装构建必备包,这样您就有了一些关键开发工具,包括GNU C++编译器、链接器等:
$ sudo apt install -y build-essential
我们还需要安装gdbserver,这个程序允许您使用远程GDB调试器进行调试。
$ sudo apt install -y gdbserver
安装和配置SSH
让我们使用“apt”包管理器在Bash/WSL上下载并安装SSH:
$ sudo apt install -y openssh-server
在我们启动SSH之前,您将需要配置SSH,但您只需要这样做一次。运行以下命令编辑sshd config文件:
$sudo nano/etc/ssh/sshdu配置
向下滚动“PasswordAuthentication”设置并确保其设置为“yes”:
按CTRL+X退出,然后按Y保存。
现在为SSH实例生成SSH密钥:
$sudo ssh密钥-A
在从Visual Studio连接之前启动SSH:
$sudo服务ssh启动
*注意:每次启动第一个Bash控制台时都需要这样做。作为预防措施,当您关闭上一个Bash控制台时,WSL当前会中断所有Linux进程! .
安装和配置Visual Studio
为了获得最佳体验,我们建议安装 Visual Studio 2017 RC版 (或以后)使用Visual C++作为Linux。在安装过程中,一定要选择Linux工作负载的Visual C++。
现在您可以从visualstudio连接到Windows子系统for Linux,方法是转到Tools > 选项 > 跨平台> 连接管理器。单击add并输入“localhost”作为主机名和WSL用户/密码。
现在可以使用任何现有的C++ Linux项目连接,或者在文件下创建一个新的Linux项目。 > 新建项目 > Visual C++ > 跨平台 > Linux。
将来,我们将发布一篇更详细的文章,展示使用WSL的优势,特别是利用使用Linux工作负载构建的二进制文件的兼容性来部署在远程Linux系统上。
现在,从windows10creators更新开始,从visualstudio的角度来看,Windows子系统Linux(Bash/WSL)上的Bash是一个真正的Linux系统。