在 Visual Studio 2017 15.7预览版1 我们已经根据您的反馈对Linux对C++工作负载的支持做了一些改进。你可以 在VisualStudio中了解更多关于Linux C++工作负载的内容 .
MSBuild项目系统改进
在C/C++通用属性页上,我们向Linux项目添加了一些新属性。Max并行编译作业允许您启动其他编译进程。默认值为1,但可以增加该值以提高构建吞吐量。公共项目包含目录允许您在项目中指定要向解决方案中的其他项目公开的目录。在消费项目中,添加对暴露其include目录的项目的引用,现在可以从源代码中引用它们。
Linux控制台窗口改进
现在,在启动或调试Linux项目时,将显示Linux控制台窗口。如果您停靠此窗口,则在随后的发射中将记住该位置。从调试模式返回时,窗口将关闭。我们还修复了echo on/off的处理,以正确显示来自远程系统的消息。
CMake和open folder的Rsync改进
我们在openfolder和CMake场景中的rsync支持也得到了一些改进。 以前rsync将运行到完成,即使您取消了启动它的任务,这已经被修复。例如,如果rsync是由一个构建触发的,并且您取消了构建,那么rsync现在将取消执行。 我们还改进了一些性能,并启用了根用户rsync。现在还可以使用 rsyncCommandArgs命令 CMakeSettings.json中的选项。
重视流程改进
您已经向我们提供了关于需要对远程Linux调试的附加到进程场景进行更多控制的反馈。我们添加了许多控件,这些控件可以通过Linux项目或打开文件夹的正常调试启动设置来实现,例如启用子进程调试、预附加命令等。要启用此功能,请在解决方案或工作区的根目录中放置一个名为Microsoft.MIEngine.Options.xml的文件。下面是一个简单的例子
<?xml version="1.0" encoding="utf-8"?> <SupplementalLaunchOptions> <AttachOptions> <AttachOptionsForConnection AdditionalSOLibSearchPath="/home/user/solibs"> <ServerOptions MIDebuggerPath="C:Program Files (x86)Microsoft Visual StudioPreviewEnterpriseCommon7IDEVCLinuxingdb7.9x86_64-linux-gnu-gdb.exe" ExePath="C: empConsoleApplication17ConsoleApplication17inx64DebugConsoleApplication17.out"/> <SetupCommands> <Command IgnoreFailures="true">-enable-pretty-printing</Command> </SetupCommands> </AttachOptionsForConnection> </AttachOptions> </SupplementalLaunchOptions>
AttachOptionsForConnection具有您可能需要的大多数属性。上面的示例显示如何传递一个位置来搜索其他.so库。子元素ServerOptions支持使用gdbserver连接到远程进程。为此,您需要指定一个本地gdb客户机(上面显示的是在VS中提供的客户机)和带有符号的二进制文件的本地副本。其他子元素SetupCommands允许您将命令直接传递给gdb。您可以在中找到所有可用的选项 LaunchOptions.xsd架构 ,请查看此补充AllaunchOptions文件的根元素。
下一步是什么
下载 Visual Studio 2017预览版 安装Linux C++工作负载,并尝试使用项目。
联系我们最好的方式是通过 我们的GitHub托管问题列表 ,直接邮寄至 vcpplinux-support@microsoft.com 或者在推特上找到我 @机器人爸爸 .