Visual Studio Code C/C++ 扩展12月份的更新

[原文发表地址] December Update for the Visual Studio Code C/C++ extension [原文发表时间] 2016/12/12 在今年的//Build大会上我们推出了Visual Studio Code的C/C++扩展, 我们将保持每月发行的节奏和目标并不断对您的反馈做出回应。下面将介绍十二月份更新的一些功能: GDB用户的调试器可视界面的默认美观输出 在调试过程中能够映射到源文件 如果您还没来得及给我们提供反馈,为了这个扩展能够更好的满足您的需要,请您填一下这份快速调查问卷。最初的博客中已经更新了这些新功能,现在让我们一起仔细地逐一学习一下它们。 GDB用户的调试器可视界面的默认美观输出 使用美观输出器使GDB的输出更具有可用性,因此使调试更加地容易。美观输出现在可以被预先设置在‘launch.json’文件中的‘setupCommands’部分里,‘-enable-pretty-printing’的标志说明现在美观输出是可用的。这个标志可以传递到GDB MI来开启美观输出。 为了说明美观输出的优点,让我们来看看下面这个例子。 #include <iostream> #include <string> #include <vector> using namespace std; int main() { vector<float> testvector(5,1.0); string str = “Hello World”; cout << str; return 0; } 在一个实时调试会话中,让我们看一下如果没有开启美观输出时‘str’ 和‘testvector’的样子: 现在我们可以看到‘str’ 和‘testvector’的值看起来很隐晦很难懂…… 让我们再看一下开启了美观输出时‘str’ 和‘testvector’的值: 现在我们可以感受到这两个值是如此的简单明了!…

0

Visual Studio 2017 支持CMake了— 在RC.2版本中关于CMake的更新

[原文发表地址]  CMake support in Visual Studio 2017 – what’s new in the RC.2 update [原文发表时间] 2016/12/20 为了防止您错过Visual Studio的最新动态,您可以查看Visual Studio 2017 RC的最新可用版本。您可以在已经安装的Visual Studio上直接更新到RC版本,或者您也可以从Visual Studio 2017 RC下载页面直接安装。这次的发布版本在Visual Studio’s CMake部分做出了一些改善,可以进一步简化C++项目的开发体验。 如果您才刚刚开始在Visual Studio上使用CMake,Visual Studio开始支持CMake这篇博客是比较好的资料,这篇博客可以让您对在Visual Studio上CMake的功能有更加充分的了解,同时包括在本篇博客中提及的功能的最新更新。另外,如果您对不使用CMake 和MSbuild的C++代码库的“Open Folder”这个功能比较感兴趣,可以查阅the Open Folder for C++ 这篇博客。 这次更新的RC版本增加了下列这些功能: 打开多个CMake项目 编辑CMake项目 配置CMake 生成和调试CMake的目标文件 打开多个CMake项目 现在您可以打开有任意多数目的CMake项目的文件夹。Visual Studio将会在您的工作空间里检测出所有“root”里的CMakeLists.txt文件,然后再恰当地配置它们。在您的工作空间里所有CMake项目的CMake操作(配置,生成,调试)以及C++智能感应和浏览都是可用的。 如果多个CMake项目使用相同的CMake配置名称,当特定的配置被选择的时候,这些有相同名称的项目都可以被配置并创建(在它们自己的CMake项目中独立生成根文件夹)。当然您也可以调试来自于CMake配置文件中配置的所有CMake项目的目标文件。 如果您喜欢独立的项目,您仍然可以(通过CMakeSettings.json 文件)对特定的CMakeLists.txt设置单独的CMake配置。如果这样设置的话,当这个特定配置被选择的时候,只有特定的CMake项目是可以生成并调试的,同时基于CMake的C++智能感应也仅仅对它的源文件起作用。 编辑CMake项目 CMakeLists.txt和*.cmake文件语法的彩色化显示。当打开一个CMake项目时,编辑器将会提供基础的语法彩色化显示和基于代码编辑的智能感应。 在错误列表和输出窗口中改善了CMake的警告和错误显示。CMake的错误和警告现在都聚集在错误列表窗口中,在错误列表窗口或输出窗口中双击任意一个错误或警告将会打开相应的CMake文件并定位到错误行或警告行。 配置CMake 取消CMake生成cache。当您打开一个包含CMake项目的文件夹或在CMakeLists.txt文件中做一些改变并保存后,配置都将会自动生成Cache。如果因为某些原因您不希望它成功运行,您可以点击编辑器上面的黄色消息条中的“Cancel”或者右键点击根目录的CMakeLists.txt然后选择“Cancel Cache…

0

用Visual Studio Code 来生成您的C++应用程序

[原文发表地址] 用Visual Studio Code 来生成您的C++应用程序 [原文发表时间] 2016/10/24 在过去的几个月里,我们收到了很多反馈关于希望可以在Visual Studio Code 中允许开发人员生成他们的C++应用程序。在Visual Studio Code中这个任务可以扩展为使生成,打包,测试和配置这些任务可以自动化实现。这篇文章将会说明如何在Visual Studio Code中使用任务扩展性,您可以通过下面各部分的帮助来调用编译,生成系统和其他外部的任务: 安装C/C++生成工具 生成一个简单的Visual Studio Code任务 在Visual Studio Code任务中直接调用GCC和Clang 使用Visual Studio Code任务扩展来调用Makefiles 使用Visual Studio Code任务扩展来调用MSbuild 使用Visual Studio Code扩展来调用CMake 安装C/C++生成工具 为了生成您的C++代码您首先应该确认在您的机器中已经安装了C/C++生成工具(编译器,连接器和生成系统)。如果您已经在Visual Studio Code外安装了这些工具并可以在外部生成工程,您可以直接跳到下一部分。 您可以在Visual C++ 生成工具中下载这些工具然后安装在机器里。这些工具默认的安装路径是 ‘C:\Program Files (x86)\Microsoft Visual C++ Build Tools’。如果您还没有安装Visual studio, 您只需要做这一步就好了。如果您已经安装了Visual Studio, 那么您需要的一切已经准备就绪了。 如果您工作在支持apt-get的Linux平台,您可以运行下面的命令来确保您是否安装了正确的可以生成C/C++代码的工具。 sudo apt-get install g++ sudo…

0

VS “15”包含C++核心检查代码分析

发表时间:2016.10.12 作者:Andrew Pardoe 原文发表地址:https://blogs.msdn.microsoft.com/vcblog/2016/10/12/cppcorecheck/ Visual Studio “15” Preview5现在已经包含了C++核心准则检查器。这就意味着您不再需要从NuGet安装代码核心检查包来检查你的代码是否符合C++核心准则的规则和配置文件。您只需要配置代码分析就可以使其包含C++核心检查的扩展。 你可以在解决方案或者项目的属性页上来配置代码分析。右键单击项目或者解决方案,或从菜单栏中选择“分析->配置代码分析”。                 在属性页的底部找到代码分析条目,然后选择”扩展“。这里有两个选项:一个是启用已发布的C++核心检查,一个是启用实验核心检查。                   发布的核心检查VS试验的核心检查 发布的核心检查与试用的核心检查之间有什么不同?发布的核心检查更加健全。它们发现的警告比试用的的核心检查更加值得信赖并且检查器本身运行更快。现在,它们包括我们发布的VS 2015 Update1的第一组C++核心准则以及准则中的一些其他检查。 试验的检查包含正在开发的规则但是它会对你运行的代码不利。它们包含我们在2016年3月发布的生命周期检查以及其他正在开发的检查。请注意,虽然大多数的检查会从“试验”移到“发布”,但您不应该依赖实验组中的任何检查。因为其中有一些是原型,不会进入发布组。                     未来基于NuGet的包 提醒一下,如果你使用Visual Studio 2015,你必须从NuGet安装C++ 核心检查包,此更改仅适用Visual Studio “15”的下一个主要版本的Visual Studio。(注意VS”15”!=Visual Studio 2015,每一个版本的Visual Studio有两个名称:内部名称是一个简单的递增数字,外部名称是它的发布年份Visual Studio “15“恰好在Visual…

0

CMake 在Visual Studio – Visual Studio 2017 RC 更新中被支持了

[原文发表地址]CMake 在Visual Studio – Visual Studio 2017 RC 更新中被支持了 [原文发表时间] 2016/11/16 Visual Studio 2017 RC是一个很重要的发布版本,因为它开始支持CMake了。“Tools for CMake” VS 组件已经发布在预览版中了。我们也想邀请所有人把您的CMake项目导入到VS中来工作并且可以给我们反馈用户体验。 关于Visual Studio CMake体验的一些概述,在Visual Studio 开始支持CMake 的公告中已经对所有功能的讨论进行了更新。另外,如果您对不使用CMake或MSBuild的C++项目中的“Open Folder”比较感兴趣,您可以查看C++中打开文件夹的公告这篇博客。 RC版本支持如下: 编辑CMake项目 配置CMake项目 建立并调试CMake目标文件 编辑CMake项目 CMake默认配置。 只要您打开一个包含CMake项目的文件夹,解决方案资源管理器窗口将会列出文件夹中的所有文件,您可以在编辑窗口打开这些文件中的任意一个。在后台,VS将会开始检索您文件夹中的所有C++文件。VS也会开始运行CMake.exe来收集更多的关于您的CMake项目的信息(CMake cache也会在这个过程中生成)。CMake会生成一系列特殊的转换,这些转换作为VS生成“Visual Studio 15 X86“ 名下的CMake默认配置的一部分。 CMake配置转换。 您可以在工具一栏中的C++配置下拉菜单中转换CMake的配置。如果一个配置对CMake来说缺少必要的信息而不能准确地生成cache,您可以参考这篇博客后面的—如何配置CMake来进一步自定义它。 自动更新CMake cache。如果您对CMakeLists.txt文件做了改变或是转换了配置,CMake生成cache的步骤将会自动再次运行。您可以在CMake输出栏的输出窗口中追踪这一过程。 当生成步骤完成后,编辑窗口中的通知条将会消失,Startup Item下拉菜单中也会包括已更新的CMake目标文件清单,C++智能感应也会根据您对文件最新一次的改变来逐渐进行更新(例如,增加文件或是改变编译转换等等)。 配置CMake项目 通过CMakeSettings.json来配置CMake。 如果您的CMake项目需要额外的设置来正确地配置CMake cache,您可以首先在根目录有CMakeLists.txt的相同文件夹中创建一个CMakeSettings.json文件,然后通过这个CMakeSettings.json文件来自定义一些设置。在这个文件中您可以配置您所需要的任何关于CMake的配置—您也可以随时在这些配置中进行转换。 通过点击Project->Edit Setting->path-to-CmakeLists (配置名字) 来创建一个CMakeSettings.json文件。 CMakeSettings.json 示例 1…

0

Vcpkg更新:静态链接

[原文发表地址] 静态链接正式启用 [原文发表时间] 11/6/2016 在一个月之前, 我们宣布了Vcpkg正式启用, 这是一个命令行工具,可以很简单地获取和构建开源代码C++ lib 并且已经在Visual studio 2015 中投入了使用,只是在这个最初发布的版本中仅仅只支持动态链接库,基于我们收到的反馈,我们很高兴来公布Vcpkg 开始支持静态链接。 为了生成静态链接库, 使用x86-windows-static 或者x64-windows-static 中的其中一个参数 例如: 为x86 用户来构建静态zlib vcpkg install zlib:x86-windows-static The library will be installed in the following folder:  vcpkg\installed\x86-windows-static   使用静态链接库 更新于11/4: 为了阐明/MT 的使用方法,我们专门就如何覆盖这个两个自动识别参数提供了详细的向导说明 我们当下部署了一系列内置参数,它们将会根据静态CRT 构建静态库(Visual Studio中的/MT):x86-windows-static, x64-windows-static等等 在Visual Studio中 ,你可以使用MSBuild的”VcpkgTriplet”和“VcpkgEnabled属性来自动覆盖这些自动识别出来的参数(这将会默认生成DLL)”。对于更大的解决方案,属性页中有更好的方法来管理这些设置。 例如:     <PropertyGroup Label=”Globals”>         ….         <VcpkgTriplet>x86-windows-static</VcpkgTriplet>         <VcpkgEnabled>true</VcpkgEnabled>…

0

用Visual Studio 2017 RC 打开任何C++ 源代码文件夹

[原文发表地址] Open any folder with C++ sources in Visual Studio 2017 RC [原文发表时间] 11/16/2016   随着Visual Studio 2017RC 的发布,我们一直在改进c++源代码中的“打开文件夹”功能。在这次发布的产品中,对于调试器和C++语言服务,我们增加了生成以及更简单配置的支持。 如果你刚刚开始使用“打开文件夹”或者想要更深入的了解这些功能, 可以去C++入门介绍的打开文件功能,在那里已经更新了下面的内容。如果你目前在使用CMake, 可以去看我们的博客介绍Visual Studio的CMake支持。 以下是对Visual Studio 2017的最新RC版本中的“打开文件夹”功能的改进: 读写C++代码 生成C++程序 调试C++二进制文件   阅读并编辑C++代码 环境变量和宏支持。有利于配置C++智能感知和浏览的CppProperties.json 文件,目前对于指定头文件路径和其他属性值支持环境变量扩展功能。语法是将一个环境变量%FOODIR%扩展到${env.FOODIR}。 注意:%WindowsSdkDir% 和%VCToolsInstallDir%未设置为全局环境变量,所以确保从VS2017开发人员命令提示符启动devenv.exe,因为它定义了这些变量。   在此文件内,你还可以访问到内置宏:   ${workspaceRoot}—提供工作区文件夹的完整路径 ${projectRoot}–CppProperties.json放置的文件夹的完整路 ${vsInstallDir}—安装VS2017正在运行实例的文件夹的完整路径   CppProperties.json 智能感知。当你安装了完整的JSON编辑器(它附带有网页开发工作负载),可以通过JSON智能感知在编辑CppProperties.json文件时得到帮助。 C++配置下拉列表。你可以在CppProperties.json文件里创建尽可能多的配置,同时可以从标准工具栏的C++配置下拉列表里轻松的切换这些配置。 CppProperties.json CppProperties.json现在是可选的和默认的。当你打开一个C++源代码文件夹,VS会创建2个默认的配置:调试和发布。这些配置是和我们在VS2015中介绍的单个文件智能感知配置是一致的。   生成C++工程 通过一系列任务集成外部工具。现在你可以对当前工作区中的文件自动构建脚本或者其他任何外部的操作,在IDE里直接作为任务来运行它们。你可以在一个文件上右键单击选择“自定义任务设置” 来配置一个新的任务。 这个操作会在你的工作区中隐藏的.vs文件夹里创建一个新的tasks.json文件和一个新的任务。JSON智能感知是可用的如果你已经安装了JSON编辑器( 它附带有网页开发工作负载)。 默认情况下,可以从解决方案资源管理器中文件的上下文菜单执行任务。对于每一个任务,在上下文菜单的底部你会发现一个新的条目。 Tasks.vs.json…

0

提高VS 中C++编译速度的建议

[原文发表地址] 提高VS中C++编译速度的建议 [原文发表时间] 2016/10/26 在这篇博客中,我将详述你所能用到的一些功能,方法和工具来减少c ++工程的编译时间。发布这篇博客主要是为了改进开发人员在编写/编译/调试周期中的调试配置来改善编译时间(内部开发循环)。这些建议是调查了一些工程中的编译问题后得出的结果。 开发人员在写代码和调试代码时会频繁的触发编译,所以此处的改进会对生产效率产生巨大的影响。一些建议把焦点放在这一阶段上,但另外一些建议将继续编译实验场景,用优化策略为端对端的功能和性能测试清理生成然后发布。 我们的建议包括: •使用预编译头文件 •使用 /MP 编译设置 •使用增量链接 •使用 /debug:fastlink 链接设置 •考虑使用第三方编译加速器 •注册求助 开始之前 我将强调一些工程设置中的搜索功能。该功能可以让你在定位和修改工程设置时更容易。 1.找出工程属性并且展开你感兴趣的工具分组 2.选择”All options”分组然后根据名字或者命令行开关来搜索设置,例如下图所示的Multi-processor或者/MP 3.如果你无法搜索到设置,选择”Command Line”分组然后在附加选项中具体说明所要选的开关。 建议 具体的建议包括 •在工程中使用PCH •在PCH中包括普遍使用的系统,运行环境和第三方头文件 •在PCH中包括基本不会改变的工程特定头文件 •不要包括频繁改变的头文件 •经常审查PCH来确保其和产品的更新同步 •使用/MP •移除/Gm有利于/MP •处理和#import有关的冲突并且使用/MP •使用链接器开关 /incremental •使用链接器开关 /debug: fastlink •考虑使用第三方编译加速器 预编译头文件 预编译头文件能够显著的减少编译时间,但是需要在安装和维护上做出努力以确保有最好的结果。我曾调查过几个也不含预编译头文件或者包含一个失效的头文件的工程。一旦把PCH加到工程中来反应当前状态,工程中单独的源文件的编译时间就会减少4-8倍(~4s 到 <1s) 一个理想的PCH是一个达到以下标准之一的头文件 •头文件不经常更改 •在工程中被大量的源文件所包含 SDK,运行环境头文件和第三方库头文件一般都会满足第一个条件并且是PCH包含文件中很好的选择。只用这些文件创建一个PCH能够显著的改善编译时间。另外,如果你的工程特定头文件不经常更改,你可以在PCH中包含它们。 在维基百科中搜索相关文章或者在网上搜索预编译头文件相关可以很好的帮助你开始了解PCH。在之后的博客发布中我将继续详细的介绍PCH和工具来帮助你维护PCH文件。 建议 •在工程中使用PCH •在PCH中包括普遍使用的系统,运行环境和第三方头文件 •在PCH中包括基本不会改变的工程特定头文件 •不要包括频繁改变的头文件…

0

Visual studio 生成工具介绍

[原文发表地址] Introducing the Visual Studio Build Tools [原文发表时间] 11/16/2016 Adam Welch (MSFT) 回顾Visual C ++和生成工具 去年我们介绍了Visual C++ 生成工具,它实现了流水线构建实验室体验,即在无需安装Visual Studio IDE的额外开销下获取需要的Visual C++ 工具。我们扩展了选项,使其包括一些工具例如ATL和MFC,用于C ++ / CLI开发的.NET工具,以及各种Windows SDK的工具。还有一个MSBuild独立安装程序,用于安装生成 .NET应用程序所需的工具,即Microsoft生成工具。 新的Visual studio 生成工具 在Visualstudio 2017 RC中我们引用了新的Visual studio 生成工具,它使用新的安装体验,为管理和本机应用程序对MSBuild 工具提供访问。这个安装程序把Visual C ++生成工具和Microsoft生成工具替换为一站式生成工具。默认情况下,管理和本机应用程序所有必需安装的的MSBuild工具都随Visual Studio生成工具一起安装,包括MSBuild命令提示符,你可以使用它来生成应用程序。此外,还有一个可选的工作负载 ”Visual C + + 生成工具”,它提供了一组额外的选项,本地C ++开发人员可以安装在核心MSBuild组件的顶部。  这些选项与Visual Studio 2017 RC “C ++ 桌面开发” 工作负载中的选项非常相似, 它提供了与Visual C…

0

Navigate to的继承者 Go To

[原文发表地址] Introducing Go To, the successor to Navigate To [原文发表时间] 11/16/2016 Augustin Popa Visual Studio 2017 包含了核心开发人员工作效率体验的几个重要改变。 我们的目标是让你在开发应用程序时效率最大化, 这就要求我们持续的更新我们的功能并随着时间的推移去改善他们。 对于Visual Studio 2017,我们想要提高代码导航,尤其是对于能产生许多查询结果的大型解决方案。我们的一大重点就是Navigate To(现在被称为Go To)。 另外一个是查找所有引用,这将会在另外一篇博客中介绍。   我们将Navigate To更名为Go To, 一种围绕特定种类的结果的一组过滤导航体验的总称。我们认识到,大型搜索有时会发生期望查找的关键词出现在下拉列表的相当远的地方的情况。使用我们新的筛选器,会在搜索进程或者开始搜索之前很容易缩小期望的结果范围。 新的Go To体验添加的过滤器   你可以使用快捷键Ctrl+,打开Go To,这样会在你正在编辑的文档上创建一个搜索框。“Go To”是下面这些功能的一个统称: 移至某一行 (Ctrl +G) – 迅速跳转到你当前文档中的某一行。 转至所有 (Ctrl + ,) 或者 (Ctrl + T) –  和之前的Navigate To的功能相似,搜索结果包括以下内容 转到文件 (Ctrl 1,…

0