Visual Studio Code C++扩展更新

更新来了
VisualStudioCodeC++扩展的2月更新现已可用 。 在最新版中 , 我们提供了对交叉编译环境下的IntelliSense配置的支持 , 另外 , 我们还修复了60多个Bug 。 (看来 , Bug不少啊)
交叉编译IntelliSense配置
在此最新版本中 , 你可以配置扩展以在针对不同于主机OS的平台进行编译时提供适当的IntelliSense 。 是的 , 我说的是平台 , 而不仅仅是架构 。 C++扩展不再根据你的主机操作系统对系统进行硬编码 , 它将使用你使用的编译器返回的系统定义 。
假设 , 你在macOS上进行开发 , 而你的项目则针对Linux 。 假设你有与项目目标平台和体系结构兼容的编译器 , 则C++扩展将使用IntelliSense配置中的Compiler路径 , Compiler参数和IntelliSense模式设置来查询该编译器 。 如果你使用的是自定义配置提供程序(例如CMake工具)或compile_commands.json , 则无需担心更新C++扩展程序的IntelliSense配置:一切都会正常工作 。
Visual Studio Code C++扩展更新】工程的IntelliSense配置存储在.vscode文件夹下的c_cpp_properties.json文件中 。 通过选择C/C++来修改这些设置:从命令面板中选择“C/C++:EditConfigurations(UI)” 。

Visual Studio Code C++扩展更新
文章图片
在配置的”Compilerpath”设置项下 , 输入与目标平台和体系结构兼容的编译器的路径 。
然后 , 使用Compiler参数提供与编译器交叉编译代码时使用的目标三元组 。 例如 , 如果目标是64位Linux , 则为–target=x86_64-linux 。 这允许C++扩展查询编译器的系统定义 , 并包括特定于目标平台和体系结构的路径 。

Visual Studio Code C++扩展更新
文章图片
接下来 , 将IntelliSense模式设置为你所使用的编译器的特定于平台和体系结构的变体(它应与Compiler参数中定义的目标三元组相匹配) 。 如果查询编译器返回的信息与你选择的IntelliSense模式不匹配 , 则C++扩展程序将自动更正IntelliSense模式 。

Visual Studio Code C++扩展更新
文章图片
现在 , 当你在VSCode中打开项目时 , 你将获得针对目标平台而不是macOS的IntelliSense 。 不再有来自硬编码系统定义的花样!
其他的增强功能
除了支持交叉编译IntelliSense配置之外 , 2021年2月的更新还具有以下增强功能:
#6326clang格式已更新至版本11 。
#6494现在 , 我们提供了具有ARM64Windows设备扩展名的本机ARM64clang格式二进制文件 。
#6018我们添加了一条命令 , 可从你的代码格式设置(vcFormat)生成EditorConfig内容PR
#6794我们支持cppvsdbg的新”控制台”启动配置属性(替换旧版”externalConsole”属性) 。
Bug修复
2021年2月更新的C++扩展修复了60多个Bug!仅举几例:
#6774修复由于LinuxARM/ARM64上缺少libtinfo5而导致clang格式失败的问题
#1575使用compileCommands修复–sysroot和-isysroot的处理问题 。
#1780修复如果未打开的头文件发生更改 , 则IntelliSense不会更新的问题 。
#2667和6749修复”头文件/源文件”在不可见的情况下不会切换到另一列中的现有文件的问题 。
#6713允许扩展在M1Mac的x64模拟器上运行 。
#4044和#4249修复悬停并查找模板函数重载的“查找所有引用”的问题 。
总结
老大哥再怎么开发新东西 , 也没忘照顾昔日王者C++ , 我觉得很欣慰 。
还是Keepmoving吧各位 。
最后
MicrosoftVisualC++团队的博客是我非常喜欢的博客之一 , 里面有很多关于VisualC++的知识和最新开发进展 。 大浪淘沙 , 如果你对VisualC++这门古老的技术还是那么感兴趣 , 则可以经常去他们那(或者我这)逛逛 。
本文来自:《VisualStudioCodeC++Extension:Cross-CompilationIntelliSenseConfigurations》

Visual Studio Code C++扩展更新
文章图片