Visual Studio Code C / C ++扩展2017年10月更新

[原文发表地址] Visual Studio Code C/C++ extension October 2017 update [原文发表时间] 2017/10/20 昨天我们发布了2017年10月的Visual Studio Code C / C ++扩展的更新。根据上个月发布的Lightbulb的智能感知包含路径功能的建议,我们正在添加另一个功能让智能感应设置更容易——支持compile_commands.json文件,无需手动配置includes和defines。此外,此更新还引入了新的UI来显示智能感应得解析状态。 Compile_commands.json为智能感应提供includes和defines的相关信息 compile_commands.json文件由一系列“命令对象”组成的编译数据库,其中每个命令对象指定了一种在项目中编译翻译单元的方法。 它的格式会在Clang文档中被指定,可以由许多构建系统自动生成,包括CMake和Ninja。当智能感知引擎设置为“Default”时,如果c_cpp_properties.json文件的“compileCommands”属性中指定了compile_commands.json,它将先从compile_commands.json文件中读取includes和defines来启动智能感应功能。 如果解析失败,智能感知引擎将会回退然后读取c_cpp_properties.json文件,从文件中的“includePath”属性中使用include路径,从“defines”属性中读取defines。 尝试使用基于编译器的智能感知 请注意,compile_commands.json文件仅仅在您启用了新的基于编译器的引擎时被支持。这样您将获得改善,对于多个智能感应的功能会获取更加准确的结果,包括类/结构/命名空间成员的自动完成建议,快速信息工具提示,错误曲线,高亮引用和参数提示。在您的settings.json文件中,通过更改“C_Cpp.intelliSenseEngine”属性, 从“Tag Parser”改为“Default”(从菜单上的File-> Preferences-> Settings中打开),来打开新的智能感知功能。 智能感知状态指示器 在状态栏的右上角,您会发现两个图标可以显示智能感知引擎的解析状态 ——红焰图标代表基于编译器的智能感知引擎,白色数据库图标用来显示Tag Parser在解析文件中的位置。将鼠标悬浮在数据库图标上可通过提示信息了解已解析的文件数和需要解析的文件总数。 告诉我们您的想法 下载Visual Studio Code的C / C ++扩展,尝试一下,让我们知道您的想法。关于GitHub的文件问题和建议。在本次快速调查中为我们提供反馈意见,以帮助您根据自己的需要制定此扩展。您也可以在Twitter上找到我们(@VisualC)。

0

Visual Studio中的ARM GCC交叉编译

[原文发表地址] ARM GCC Cross Compilation in Visual Studio [原文发表时间] 2017/10/23 在Visual Studio 2017 15.5预览2中,我们引入了针对ARM微控制器的交叉编译的支持。要在安装中启用此选项,请使用C ++工作负载选择Linux开发,并选择嵌入式和IoT开发选项。这将添加ARM GCC交叉编译工具和Make进行安装。 我们的交叉编译支持使用我们的“Open Folder”功能,因此没有涉及项目系统。我们正在使用来自其他Open Folder场景的相同的JOSN配置文件,并添加了其他选项来支持这里介绍的工具链。我们希望这为许多风格的嵌入式开发提供了灵活性。开始使用此功能并了解功能的最佳方法是使用ARM mbed在线编译器导出的项目。我们将在这里介绍基础知识,了解有关在线编译器的更多信息,请参阅ARM的教程,您可以在这里注册一个账号。 ARM的在线编译器可以让您选择目标平台并相应地配置您的项目。我们正在使用ST Nucleo-F411RE,但编译器支持的任何一个板都应该是正常的。单击新建,然后在打开的对话框中选择一个模板以开始使用。我选择了“Blinky LED test for ST Nucleo boards”。 然后在程序工作区中选择程序,右键单击并选择导出程序。 在导出程序对话框中,为导出目标选择GCC(ARM Embedded)。 这将下载Zip文件到您的计算机。将该文件的内容提取到您喜欢的位置并打开Visual Studio。现在用File–>Open–>Folder打开它。我们需要通知VS这是什么类型的的C++代码,所以进入项目菜单并选择Edit Settings–>CppProperties.json。修改内容,所以只有一个条目与以下匹配。 { “configurations”: [ { “inheritEnvironments”: [ “gcc_arm” ], “name”: “gccarm”, “includePath”: [ “${env.INCLUDE}” ], “defines”: [ ] } ] } gcc_arm的环境定义设置了VS安装的ARM…

0