#include在vscode中检测到的错误

ban*_*'14 27 c++ visual-studio-code

我在我的C++项目中使用Visual Studio Code.我为VS Code安装了Microsoft C/C++ Extension.我收到以下错误:

检测到#include错误.请更新您的includePath./path/to/project/file.cppTag 翻译单元()的IntelliSense功能将由Tag Parser提供.

Ale*_*usa 89

如果您正在使用cmake-tools并且错误消息表明 出现问题configurationProvider,那么您有 2 个选择:

  1. 使用ms-vscode.cpptools而不是ms-vscode.cmake-tools
  2. 定义标题CMakeLists.txt

选项 1:使用ms-vscode.cpptools代替ms-vscode.cmake-tools.

  1. 打开c_cpp_properties.json。(Windows 上的 windows 键或 mac 上的 cmd 键 + shift + p,输入“c/c++ 编辑配置”并选择“json”。
  2. 输入ms-vscode.cpptools作为configurationProvider的值,而不是ms-vscode.cmake-tools或您拥有的任何内容。

替换configurationProvider后应该是什么样子:

在此输入图像描述

另一项重要的配置是包含路径。假设您的配置正确。可能像下面这样

在此输入图像描述

选项 2:定义标头CMakeLists.txt

configurationProvider设置为ms-vscode.cmake-toolsin时c_cpp_properties.json,VS Code 使用 中定义的包含信息,而CMakeLists.txt不是读取includePathVS Code 中的配置。

所以你需要正确设置包含路径:

  1. 使用include_directories命令(而不是 target_include_directories 命令)定义标头
  2. 配置项目以反映上一步中发生的更改。

  • 在进行此更改之前,请检查重新启动 vscode 是否有帮助。 (2认同)

Blu*_*her 18

我使用的是 Macbook M1 Pro,我的 C++ 文件中到处都是红色的波浪形错误行。为了解决这个问题,我这样做了:

  1. 打开首选项 -> 设置
  2. 搜索intelliSenseEngine
  3. 将“C_Cpp:智能感知引擎”从更改DefaultTag Parser

或者,您可以.vscode在项目根目录中创建一个文件夹,然后创建一个settings.json包含以下内容的文件夹

{
    "C_Cpp.intelliSenseEngine" : "Tag Parser"
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,您应该c_cpp_properties.json在同一文件夹中拥有一个具有正确设置的文件。

注意:我从这里的Github 得到了这个想法。


ban*_*'14 16

答案如下:如何使用C/Cpp扩展并将includepath添加到配置中.

单击灯泡,然后编辑打开的JSON文件.选择与您的平台右挡(有Mac,Linux,Win32- MS-vscode.cpptools版本:3).更新路径includePath(如果您使用VS代码编译则很重要)或browse.paths(如果您使用VS代码导航时很重要)或两者都有.

感谢@FrancescoBorzì,我将在这里附上他的答案:

您还可以Right 在带下划线的代码上单击鼠标按钮.

如果#include找不到文件或其中一个依赖项,您还可以单击include语句下的红色曲线来查看有关如何更新配置的建议.

在此输入图像描述

  • 我的编辑器上没有“添加到“includePath””选项,该编辑器确实具有 C/C++ 扩展名。我可以了解一下原因吗? (6认同)
  • 请补充,您的答案包含@Francesco答案的一部分,例如,他是第一位,但您只是将其添加到您的内容中以提高知名度。否则,看起来Francesco会公然复制您的答案。 (3认同)
  • 对了,忘记承认他了 (2认同)
  • 问题是,我没有获得添加到包含路径的选项。 (2认同)
  • @BugHunterUK 是否可以手动添加/更改“includePath”?请参阅此答案以获取进一步指导 /sf/answers/4769782041/。 (2认同)

Fra*_*rzi 13

经过一段时间的挣扎,我最终来到了这里,但实际上我缺少的只是:

如果找不到 #include 文件或其依赖项之一,您还可以单击 include 语句下的红色波浪线以查看有关如何更新配置的建议。

在此处输入图片说明

来源:https : //code.visualstudio.com/docs/languages/cpp#_intellisense

  • 如果没有建议怎么办? (14认同)

小智 12

  • 鼠标左键点击误差线的灯泡
  • 点击 Edit Include path
  • 然后这个窗口弹出

在此处输入图片说明

  • 刚设置 Compiler path

  • 我将其设置为“/usr/bin/g++”,将 IntelliSense 模式设置为 linux-gcc-x64,并将包含路径设置为包含“${workspaceFolder}/**”,但仍然出现包含路径错误。我确实安装了 GCC 和 G++。我对 Clang 也有同样的问题。 (5认同)

Sco*_*eak 9

错误消息“请更新您的 includePath”并不一定意味着includePath. 问题可能是 VSCode 使用了错误的编译器或错误的 IntelliSense 模式。我在这个答案中写了关于如何排除故障并使你的 VSCode C++ 配置与你的编译器和项目保持一致的说明。


Sih*_*nan 9

通过从设置中搜索转到您的c_cpp_properties.json文件。您可能会看到以下代码

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "c++17",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}
Run Code Online (Sandbox Code Playgroud)

更改编译器路径如下

"compilerPath": "/usr/bin/g++",
Run Code Online (Sandbox Code Playgroud)


Zac*_*ith 6

我正在尝试一个 hello world 程序,这一行:

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)

带有绿色下划线。我试过:

  1. 删除该行
  2. 重写该行
  3. 单击黄色灯泡并选择更新

修复了错误警告。我不知道它是否解决了实际问题。但后来我通过 Windows 10 上的 Linux VM 进行编译


Ivy*_*ing 5

在1小时内尝试了这些解决方案以及许多其他解决方案。最后关闭VS Code,然后再次打开它。很简单

  • 但为什么它有效????????????? (5认同)
  • 简单明了!有没有像无效缓存和重建索引这样的快捷方式? (3认同)
  • 如果包含的文件本身存在包含错误,它也会显示错误。=)(这就是我来这里的原因。浪费了一个小时。) (2认同)