使用Visual Studio开发C++应用:增量编译和Shell支持

使用Visual Studio开发C++应用:增量编译和Shell支持

作者:BlogUpdater |  时间:2020-07-12 |  浏览:888 |  评论已关闭 条评论

两项功能改进
Visual Studio 2019可以支持开发者在单一集成开发环境(IDE)下开发面向Windows和Linux(包括Windows Subsystem for Linux)的应用。
Visual Studio 2019 v16.7 Preview 3进一步在Linux开发中引入了两项新的特性:
1) 针对MSBuild Linux工程的增量编译优化。
2) 增加了更加广泛的Linux发行版和Shell的支持。

在Visual Studio中,C++开发者有两种方法可以面向Linux系统开发应用。
对于任何跨平台开发或者考虑到开源目的的开发,我们的建议是使用带有原生支持的CMake。这可以实现使用同一套源代码来编写面向不同目标平台编译脚本。
另外,你可以可以创建基于MSBuild的Linux工程来获得熟悉的Visual Studio开发体验。

针对MSBuild Linux工程的增量编译优化
在MSBuild Linux工程中,现在你可以使用Ninja来实现更快的增量编译了。可以通过在Visual Studio的工程属性中的[General]设置页设置[Enable Incremental Build]为 [With Ninja]即可启用Ninja增量编译。如下图所示:

请确保在Linux系统上已经安装了Ninja。可以使用如下的指令在基于Debian的Linux系统上安装Ninja:
# sudo apt-get update
# sudo apt-get install ninja-build

我们对一个包含了1000个.h头文件和1000个.cpp源文件的MSBuild Linux工程进行了性能测试。测试结果表明,使用了Ninja之后,对完整编译和增量编译(仅修改了一个头文件)所需要的时间大为减少,测试结果如下表所示:

在上述的测试中,我们使用了一台Ubuntu 20.04的虚拟机,并在Visual Studio中使用SSH连接到这台虚拟机。你也可以我们对SSH的支持和本机WSL的支持来获得这些优化。
温馨提示:你可以在通过在工程属性 \ [General] \ 平台Toolset中选择WSL或者Remote,以对WSL或者远程Linux修改平台Toolset。

对更加广泛的Linux发行版和Shell的支持
我们同时也添加了对更加广泛的Linux发行版和Shell的支持。这些变更主要应用在面向远程Linux系统或者WSL的CMake工程和MSBuild Linux工程。
Visual Studio会在第一次执行Shell指令的时候向目标系统发起询问。然后它会决定这条指令在重定向stderr时如何格式化,并从正在运行中的命令行中脱离。
Visual Studio现在可以支持的Shelll如下:
sh, csh, bash, tcsh, ksh, zsh, 和 das
如果检测到不支持的Linux Shell,则我们会回退到”sh”环境。

另外,我们还在ConnectionManager.exe中添加了新的选项和命令,这些选项和命令将会帮助你覆盖远程连接建立后默认的Shell选择。ConnectionManager.exe是一个命令行工具,它主要用来在Visual Studio之外管理和维护远程连接。

其主要使用方法如下:
> ConnectionManager.exe list – -properties
当执行上述指令时,目标连接的所有属性会以列表的方式呈现出来。

> ConnectionManager.exe modify [default | connection_id | user@host [- -port port]] – -property [key=value]
上述指令主要用来定义或修改一个现有连接的属性。如果”value”是空的,则属性”key”将会被删除。
举个例子,使用如下的指令
ConnectionManager.exe modify 21212121 – -property shell=csh
可以覆盖ID为212121的连接的默认Shell。

你还可以执行如下指令来按连接ID来查看所有存储的连接列表:
ConnectionManager.exe list

最后,我们测试了所有这些新支持的Linux Shell。类似于新建工程,远程头文件同步,调试等这些关键性的功能都得到了测试,这些测试都面向了CMake工程和MSBuild Linux工程,并使用到了如下列出的Linux Shell。

总结
就当是对Windows生态开发者的一个小提醒:目前最新版的Visual Studio已经来到了 Visual Studio 2019 v16.7 Preview 3。

标签:

评论已关闭。