Linux项目系统,Linux控制台窗口,同步和附加到进程的Linux C ++工作负载改进

[原文发表地址] Linux C++ Workload improvements to the Project System, Linux Console Window, 同步 and Attach to Process

[原文发表时间] 2018/03/13

Visual Studio 2017 15.7 Preview 1 中,基于你们的反馈我们对Linux C++ 工作负载的支持进行了一些改进。你可以在这里了解更多关于我们在Visual Studio中的Linux C++工作负载

MSBuild 项目系统改进

我们在C/C++的常规属性页面上为Linux项目添加了一些新属性。最大的并行编译作业允许你启动其他编译过程。默认值是1,但可以增加以提高构建吞吐量。公共项目包含目录允许你指定要在解决方案中暴露给其他项目的项目中的目录。在消费项目中,添加对公开其包含目录的项目的引用,现在可以从源中引用它们。

Linux 控制台窗口改进

现在运行或者调试Linux项目时,将显示Linux控制台窗口。如果你停靠在这个窗口,这个位置将会在随后的运行中被记住。当你从调试模式返回时,窗口将被关闭。我们还修复了开启/关闭回声的处理,以正确显示来自远程系统的消息。

 CMake 和打开文件夹的同步改进

我们在打开文件夹和CMake场景中的同步支持也看到了一些改进。以前,即使你已取消启动它的任务,同步也会运行完成,这已得到修复。如果同步是由构建触发的,例如你取消构建,同步现在将取消执行。我们还进行了一些性能改进,并为root用户启用了同步。你现在也可以使用CMakeSettings.json中的rsyncCommandArgs选项将其他命令参数传递给同步。

附加到流程改进

你已经向我们反馈了关于需要对远程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 Studio\Preview\Enterprise\Common7\IDE\VC\Linux\bin\gdb\7.9\x86_64-linux-gnu-gdb.exe"
ExePath="C:\temp\ConsoleApplication17\ConsoleApplication17\bin\x64\Debug\ConsoleApplication17.out"/>
        <SetupCommands>
          <Command IgnoreFailures="true">-enable-pretty-printing</Command>
        </SetupCommands>
      </AttachOptionsForConnection>
    </AttachOptions>
</SupplementalLaunchOptions>

AttachOptionsForConnection具有你可能需要的大部分属性。 上面的例子显示了传递一个位置来搜索额外的.so库。 子元素ServerOptions支持使用gdbserver来连接到远程进程。 要做到这一点,你需要指定一个本地gdb客户端(上面显示了VS中的一个)以及带符号的二进制本地副本。 其他子元素SetupCommands允许你直接将命令传递给gdb。 你可以在LaunchOptions.xsd模式中找到所有可用的选项,查看此SupplementalLaunchOptions文件的根元素。

下一步是什么 

下载Visual Studio 2017预览版,安装Linux C ++ Workload并尝试使用你的项目。

联系我们的最佳方式是通过GitHub托管的问题列表,直接通过邮件atvcpplinux-support@microsoft.com或在Twitter @ robotdad上找到我。