Visual C++在Linux 1.0.5更新中的应用

Linux公告栏的Visual C++ 已更新以下内容。如果你已经熟悉这个扩展,这篇文章涵盖了什么是新的,因为 上次更新 .

null

我们最近为我们的网站发布了新的信息 1.0.5 Linux扩展的Visual C++发布 对于Visual Studio 2015。此版本有一些主要的性能改进,这些改进的特点是增量复制和生成,并大大减少了到远程Linux计算机的连接数。自上一篇文章发表以来,我们在智能感知方面也取得了显著的进步。

  • 生成文件项目模板
  • 远程源拷贝管理
  • 可重写C/C++编译路径
  • 新的调试选项

生成文件项目模板

已经添加了一个Makefile项目模板,它支持在远程计算机上使用外部构建系统(make、gmake、CMake、bash脚本等)。这在您可以在C++项目属性页下预期的情况下工作。 设置本地Intellisense路径 ,然后在“远程生成”属性页上添加命令(以分号分隔),以触发远程计算机上的生成。在这里的示例中,我使用构建脚本切换到远程目录,然后执行它。

我收集了一些 bash脚本,可以用您的源代码生成我们的makefile项目 基于目录结构。这些脚本假定Linux机器上的源代码位于已映射到Windows的目录中。他们确实在项目属性中设置了新标志,不远程复制文件。这些不太可能满足所有的需求,但如果你有一个大的项目,应该给你一个很好的起点。

Makefile project proeprties

远程文件拷贝管理

我们还可以在文件和项目级别指定是否应远程复制文件。这意味着您只需在本地映射现有源代码并将其添加到项目中进行编辑和调试,就可以使用现有的构建机制。

Copy Sources project properties

可重写C/C++编译路径

现在可以在属性页中重写远程计算机上使用的编译器命令。这将使您能够在需要时指向特定版本的GCC,甚至可以指向其他编译器,如clang。您可以使用完整路径或路径上可用的命令。

Compiler project properties

在“项目属性”的“生成事件”节点下,还有新的预生成和预链接远程生成事件,以及所有生成事件中的任意文件复制选项,以提供更大的灵活性。

Build events project properties

新的调试选项

在调试方面也有改进。我们添加了一个新的gdb模式来提高兼容性,在Windows上,远程目标可能没有正确的客户端gdb位。

Debugger mode project property

您还可以重写调试器命令本身,这对于调试在VS之外编译的外部程序非常有用。

Debug program project propery

调试属性页现在支持在启动调试时传递给调试器运行的其他gdb命令。Azure IoT项目就是一个很好的例子。如果您在Raspberry Pi上使用了Azure IoT C SDK,那么在开始调试时可能会看到抛出非法异常。这是由libcrypto和gdb之间的一些交互引起的。你可以找到一些关于这个问题的讨论 在这里 . 当调试可以继续时,您可以通过在调试器启动之前将指令传递给调试器来避免此错误,在本例中为“handle SIGILL nostop noprint”。

Debug commands project property

我们想听你的!

除了我们的支持电子邮件别名, vcplinux支持 , VC++forlinux在GitHub上有一个公共问题列表 . 这是进行公开讨论或报告bug的一个很好的选择。我们在这里也增加了延期的积压工作。通过查看标记到问题的里程碑,您可以看到我们针对发布的目标。我们已经为1.0.6承诺了一些。

因此,请遵循我们的GitHub问题列表,并通过提交反馈或+1现有反馈来使用它。我们喜欢听到我们的扩展是如何以及在哪里被使用的。如果您想与我们分享,即使您没有任何问题,也可以使用我们的支持电子邮件别名。你也可以在Twitter上找到我 @机器人爸爸 .

我们期待着您的来信。

自上次发布后发布的更改列表

2016年8月19日v1.0.5

  • 通过增量复制和生成,显著提高了性能,并大大减少了连接数
  • 外部构建系统支持(make、CMake等)的Makefile项目支持
  • 属性页中可重写C/C++编译器路径
  • 每个文件/项目的远程源副本管理:无副本和/或覆盖目标路径
  • 调试命令覆盖,用于调试外部程序
  • 预生成和预链接远程生成事件
  • 作为生成事件一部分的任意文件复制
  • 通过项目执行命令、编译、链接和归档的可跨越超时。
    • 将元素添加到下的项目文件以覆盖30分钟的默认值。值为:
    • RemoteExecuteTimeout、RemoteCompileCommandTimeout、RemoteLdCommmandTimeout或RemoteArCommmandTimeout
  • 调试属性页支持在开始调试之前为调试器运行的其他gdb命令(调试器引导命令)
  • Linux控制台在无限循环错误修复期间挂起
  • 使用主机名时默认为IPv4
  • 自定义本地/远程端口忽略错误修复
  • 链接器分析更新时出错
  • 修复了“”转义问题
  • 连接管理器uname-m,machine arch解析错误修复
  • 远程项目目录设置为系统目录错误修复
  • MIEngine位上移到Update 3

2016年7月8日v1.0.4

  • 为空项目中的新源文件修复错误
  • 增加了干净的支撑
  • 修复远程目标更改中不触发所需新生成的错误
  • 使用第一个成功的连接而不是最后一个成功的连接作为默认连接
  • 一般性能改进
  • 主要智能感知修复
  • 新的实验调试模式,gdb-over-the-shell,提供了更好的兼容性
© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享