visualstudio现在可以基于CMake工具链文件设置的CMake变量值在CMake项目中配置IntelliSense。这些改进提供了当 CMake工具链文件 用于配置和生成。例如,visualstudio现在可以使用Android工具链文件为CMake项目提供IntelliSense。这些更改还将改进使用visualstudio的IoT(交叉编译器)配置的嵌入式开发人员的智能感知。下文提供了有关这些变化的更多信息。此支持基于VisualStudio的 对CMake的本机支持 并提供 Visual Studio 2019版本16.9预览版2 .
在使用GCC或Clang时,对处理CMake工具链文件进行了以下更改。确保在CMake设置编辑器中将IntelliSense模式设置为any Clang或GCC选项(“编辑器底部的Show advanced Settings”(显示高级设置)>“IntelliSense模式”)。这些更改适用于本地Windows配置和针对 远程Linux系统或WSL . VisualStudio将内省以下变量以获取额外的IntelliSense信息。
- 如果CMake工具链文件定义了CMakeu CXXu编译器和CMakeu Cu编译器,并将该值写入CMake缓存,则visualstudio将查询这些编译器以获取预定义定义的列表和包含搜索位置的列表。
- 如果CMake工具链文件定义了CMakeu SYSROOT并将该值写入CMake缓存,那么visualstudio将传递该值(−−sysroot=
)确定编译器定义和头时。如果在CMake缓存中找不到该变量,那么visualstudio接下来将检查是否定义了sysroot环境变量并使用它。 - 如果CMake工具链文件定义了CMakeu Cu COMPILERu TARGET和CMakeu CXXu COMPILERu TARGET,并将值写入CMake缓存,那么visualstudio也会将这些值传递给编译器(−−目标=
)。
请注意,CMake脚本可以通过附加 缓存
此外,CMakeSettings.json中还添加了以下选项,以启用进一步的IntelliSense配置。可以根据配置设置这些选项。
"intellisenseOptions": { "additionalCompilerArgs": "<any-args>", "useCompilerDefaults": false }
其他编译器args 可用于显式添加VisualStudio查询编译器以获取IntelliSense时要使用的参数。 使用编译器默认值 可用于禁用对IntelliSense配置使用GCC/Clang编译器(默认为true)。这些选项适用于Windows、Linux和WSL配置。
给我们你的反馈
下载 Visual Studio 2019版本16.9预览版2 今天就来试试。我们很乐意收到您的来信,帮助我们确定优先级并为您构建合适的功能。我们可以通过以下评论联系到您, 开发者社区 ,和Twitter( @视觉 ). 提交bug或建议特性的最佳方法是通过开发者社区。