VS2019: 使用CMake工具链配置IntelliSense

VS2019: 使用CMake工具链配置IntelliSense

作者:BlogUpdater |  时间:2020-12-11 |  浏览:2117 |  评论已关闭 条评论

一句话主题
从VS2019 v16.9 Preview 2版开始新增了一项改进:开发者可以根据CMake工具链文件设置的变量值在CMake工程中配​​置IntelliSense。

当使用CMake工具链文件进行配置和构建时,这项改进可以实现IntelliSense的自动化配置。
例如,Visual Studio现在可以使用Android工具链文件为CMake工程提供IntelliSense。
这些更改还将改善使用Visual Studio的IoT(交叉编译器)配置的嵌入式开发人员的IntelliSense体验。此支持建立在Visual Studio对CMake的本机支持的基础上,并且在Visual Studio 2019版本16.9 Preview 2中可用。

当使用GCC或Clang作为编译器时,Visual StudioVisual Studio做了如下的更改以处理CMake工具链文件。这些更改适用于本地Windows配置以及针对远程Linux系统或WSL的配置。Visual Studio将智能分析以下变量,以获取其他IntelliSense信息。

1. 如果CMake工具链文件定义了CMAKE_CXX_COMPILER和CMAKE_C_COMPILER并将其值写入CMake缓存,则Visual Studio将向这些编译器查询预定义的DEFINES列表和包含搜索位置的列表。

2. 如果CMake工具链文件定义了CMAKE_SYSROOT并将该值写入CMake缓存,则Visual Studio将在确定编译器定义和头文件时传递值(-sysroot = )。如果在CMake缓存中找不到此变量,则Visual Studio接下来检查是否定义了sysroot环境变量,并改用它。

3. 如果CMake工具链文件定义了CMAKE_C_COMPILER_TARGET和CMAKE_CXX_COMPILER_TARGET并将值写入CMake缓存,则Visual Studio还将把这些值传递给编译器(-target = <值>)。

请注意,通过将CACHE 附加到set命令,CMake脚本可以将变量写入CMake缓存。

此外,以下选项已添加到CMakeSettings.json以启用进一步的IntelliSense配置。可以根据配置设置这些选项。

其他参数
AdditionalCompilerArgs
可用于显式添加在Visual Studio中,用来向编译器查询IntelliSense时要使用的参数。

useCompilerDefaults
可用于禁用将GCC/Clang编译器用于IntelliSense配置(默认为true)。这些选项适用于Windows,Linux和WSL配置。

总结
根据配置文件对Intellisense进行自动化配置,再一次解放开发者的双手。
也算一小进步。

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

标签:

评论已关闭。