Visual Studio代码:如何配置includePath以获得更好的IntelliSense结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio代码:如何配置includePath以获得更好的IntelliSense结果相关的知识,希望对你有一定的参考价值。

我是使用Visual Studio Code的完全初学者,我不知道我在做什么。我一直在搜索(也许还不够),但我找不到像我这样的人的一个简单的解释如何配置c_cpp_properties.json文件,我被重定向到每当我点击下划线旁边的黄色灯泡旁边绿色的波浪形。

Lightbulb example

c_cpp_properties.json

我只是想知道在.json中放入什么才能使IntelliSense正常工作

答案

来自:https://code.visualstudio.com/docs/languages/cpp

下面你可以看到MinGW C ++包含路径已添加到Windows的browse.path:

{
"name": "Win32",
"includePath": [
    "${workspaceRoot}"
],
"defines": [
    "_DEBUG",
    "UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
    "path": [
        "${workspaceRoot}",
        "C:\MinGW\lib\gcc\mingw32\6.3.0\include\c++"
    ],
    "limitSymbolsToIncludedHeaders": true,
    "databaseFilename": ""
    }
}

希望有所帮助! :)

另一答案

从C / C ++扩展的官方文档:

Configuring includePath for better IntelliSense results

如果在VS代码中打开文件夹时看到以下消息,则表示C ++ IntelliSense引擎需要有关包含文件所在路径的其他信息。

定义包含路径在哪里?

包含路径在"includePath"设置中定义,该文件名为c_cpp_properties.json,位于打开的文件夹的.vscode目录中。

您可以通过在命令面板中使用"C/Cpp: Edit Configurations"命令或在灯泡菜单中选择"Edit "includePath" setting"来创建或打开此文件(请参见下面的屏幕截图)。找到灯泡的最快捷方式是滚动到源文件的顶部,然后单击#include语句下显示的任何绿色波浪线。

打开文件夹时,扩展程序会尝试根据您的操作系统找到您的系统标头,但它不知道您的项目所依赖的任何其他库。您可以将鼠标悬停在绿色波浪线上或打开“问题”窗口,以了解IntelliSense引擎无法打开的标头 - 有时它是无法找到的从属标头。

如何指定包含路径?

您可以使用下面介绍的技术之一指定其余路径。

1. Use compile_commands.json file to supply includePaths and defines information

扩展可以从compile_commands.json文件获取"includePath""defines"的信息,该文件可以由许多构建系统(如CMake和Ninja)自动生成。查找定义当前配置的部分(默认情况下,每个操作系统有一个配置,例如“Win32或”Mac“),并将c_cpp_properties.json中的"compileCommands"属性设置为compile_commands.json文件的完整路径,并且扩展将使用它代替IntelliSense的"includes""defines"属性。

2. Use the lightbulb suggestions to auto-resolve includePath

首先要尝试利用灯泡路径建议来自动解析包含路径。当您打开文件夹时,扩展将递归搜索与您的代码正在使用的头文件匹配的潜在包含路径,这些路径基于c_cpp_properties.json中"browse.path"设置设置的路径。单击#include语句下的绿色曲线,您将看到一个灯泡,提供允许IntelliSense解析所包含文件的路径建议。

如果您没有在灯泡中看到路径建议,请尝试将标题可能位于的根文件夹添加到c_cpp_properties.json中的"browse.path"设置中。这允许扩展程序在这些文件夹中递归搜索,并在搜索过程继续时在灯泡中提供更多建议。

3. Manually add include paths

如果以上都不能完全解析路径,则可以在c_cpp_properties.json文件中手动指定项目所依赖的标头的路径。查找定义当前配置的部分(默认情况下,每个操作系统有一个配置,例如“Win32或”Mac“),并在"includePath"设置中添加路径并在"defines"设置中定义。例如,以下屏幕截图显示指定Mac配置路径的文件片段。

另外,对于MinGW,as the documentation of the extension explains,您可以要求gcc / g ++列出自己的包含文件:

gcc -v -E -x c++ nul

验证包含路径是否已正确解析

有两种方法可以验证包含路径是否已正确解析:

  1. 源文件中的绿色波形不再显示
  2. 在“问题”窗口中清除错误消息

这表明IntelliSense引擎已解析包含路径,因此您可以开始享受当前转换单元的C或C ++代码的完整IntelliSense。请注意,如果其他文件属于需要配置其他包含路径的其他转换单元,您仍可能会看到错误。

如果这不能解决您的问题,请查看下面的MinGW配置,并尝试为相应/类似的头文件和文件夹设置Cygwin安装的相应位置。

Configuring MinGW

c_cpp_properties.json reference guide

以上是关于Visual Studio代码:如何配置includePath以获得更好的IntelliSense结果的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Visual Studio 代码以在保存时提交到 git?

如何配置 Visual Studio 以使用代码视图作为 Web 服务的默认视图?

如何在 Visual Studio 代码中配置设置,以便更漂亮地为 react.js 工作

如何在Visual Studio中配置git

Visual Studio代码:如何配置includePath以获得更好的IntelliSense结果

OpenCV 程序无法在 Visual Studio 2010 上编译