zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Visual Studio Code C++扩展更新

2023-09-14 09:10:46 时间

更新来了

Visual Studio Code C++扩展的2月更新现已可用。在最新版中,我们提供了对交叉编译环境下的IntelliSense配置的支持,另外,我们还修复了60多个Bug。(看来,Bug不少啊)

交叉编译IntelliSense配置

在此最新版本中,你可以配置扩展以在针对不同于主机OS的平台进行编译时提供适当的IntelliSense。是的,我说的是平台,而不仅仅是架构。C++扩展不再根据你的主机操作系统对系统进行硬编码,它将使用你使用的编译器返回的系统定义。

假设,你在macOS上进行开发,而你的项目则针对Linux。假设你有与项目目标平台和体系结构兼容的编译器,则C++扩展将使用IntelliSense配置中的Compiler路径,Compiler参数和IntelliSense模式设置来查询该编译器。如果你使用的是自定义配置提供程序(例如CMake工具)或compile_commands.json,则无需担心更新C++扩展程序的IntelliSense配置:一切都会正常工作。

工程的IntelliSense配置存储在.vscode文件夹下的c_cpp_properties.json文件中。通过选择C /C++来修改这些设置:从命令面板中选择“C/C++: Edit Configurations (UI) ”。

 

在配置的”Compiler path”设置项下,输入与目标平台和体系结构兼容的编译器的路径。

然后,使用Compiler参数提供与编译器交叉编译代码时使用的目标三元组。 例如,如果目标是64位Linux,则为–target = x86_64-linux。这允许C++扩展查询编译器的系统定义,并包括特定于目标平台和体系结构的路径。

 

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

 

现在,当你在VS Code中打开项目时,你将获得针对目标平台而不是macOS的IntelliSense。不再有来自硬编码系统定义的花样!

其他的增强功能

除了支持交叉编译IntelliSense配置之外,2021年2月的更新还具有以下增强功能:
#6326 clang格式已更新至版本11。
#6494 现在,我们提供了具有ARM64 Windows设备扩展名的本机ARM64 clang格式二进制文件。
#6018 我们添加了一条命令,可从你的代码格式设置(vcFormat)生成EditorConfig内容
PR #6794 我们支持cppvsdbg的新”控制台”启动配置属性(替换旧版”externalConsole”属性)。

Bug修复

2021年2月更新的C++扩展修复了60多个Bug! 仅举几例:
#6774 修复由于Linux ARM/ARM64上缺少libtinfo5而导致clang格式失败的问题
#1575 使用compileCommands修复–sysroot和-isysroot的处理问题。
#1780 修复如果未打开的头文件发生更改,则IntelliSense不会更新的问题。
#2667和6749 修复”头文件/源文件”在不可见的情况下不会切换到另一列中的现有文件的问题。
#6713 允许扩展在M1 Mac的x64模拟器上运行。
#4044和#4249 修复悬停并查找模板函数重载的“查找所有引用”的问题。

总结

老大哥再怎么开发新东西,也没忘照顾昔日王者C++,我觉得很欣慰。
还是Keep moving吧各位。

最后

Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
本文来自:《Visual Studio Code C++ Extension: Cross-Compilation IntelliSense Configurations》