#include 在 vscode 中检测到的错误
Posted
技术标签:
【中文标题】#include 在 vscode 中检测到的错误【英文标题】:#include errors detected in vscode 【发布时间】:2018-01-16 22:02:00 【问题描述】:我在我的 C++ 项目中使用 Visual Studio Code。我安装了 Microsoft C/C++ Extension for VS Code。我收到以下错误:
#include 检测到错误。请更新您的 includePath。此翻译单元 (
/path/to/project/file.cpp
) 的 IntelliSense 功能将由标记解析器提供。
【问题讨论】:
一般自我回答的问题是可以的,但是你应该写一个明确的问题和答案,而不仅仅是指向外部资源的链接。 在 Mac OS 中,使用xcode-select --install
安装 xcode 命令行工具,然后重新启动 vscode 为我解决了这个问题。
对于 Linux 用户:确保您已安装 g++
。
【参考方案1】:
关闭并重新打开 Visual Studio Code。
【讨论】:
简单明了!有没有像缓存失效和重建索引这样的捷径?【参考方案2】:答案在这里:How to use C/Cpp extension and add includepath to configurations。
点击灯泡,然后编辑打开的 JSON 文件。选择与您的平台对应的正确块(有Mac
、Linux
、Win32
- ms-vscode.cpptools 版本:3)。更新includePath
(使用 VS Code 编译时很重要)或 browse.paths
(使用 VS Code 导航时很重要)或两者中的路径。
感谢@Francesco Borzì,我将在此处附上他的答案:
你必须左?点击弯曲的代码行旁边的灯泡。
如果找不到
#include
文件或其依赖项之一,您还可以单击包含语句下的红色波浪线以查看有关如何更新配置的建议。
【讨论】:
请添加您的答案包含@Francesco 答案的一部分,例如,他是第一个,但您只是将其添加到您的答案中以提高知名度。否则,Francesco 似乎在公然抄袭您的答案。 对了,忘了承认他 关于includePath
和browse.path
:你的解释不太对。 Both 在浏览时使用,在编译时都不使用。请参阅我的VSCode FAQ 和另一个answer。
如果包含错误是原生库怎么办? VS Code 抱怨#include <mono/metadata/assembly.h>
'Add to "includePath"' 不是我的编辑器的选项,它确实具有 C/C++ 扩展名。我可以了解一下为什么吗?【参考方案3】:
鼠标左键单击错误线的灯泡
点击Edit Include path
然后弹出这个窗口
只需设置Compiler path
【讨论】:
完成以上步骤后,请重启vs代码。 我已将此设置为/usr/bin/g++
,IntelliSense 模式设置为 linux-gcc-x64,并且包含路径设置为包含 $workspaceFolder/**
,但我仍然遇到包含路径错误。我确实安装了 GCC 和 G++。我对 Clang 也有同样的问题。【参考方案4】:
挣扎了一阵子终于到了这里,但其实我缺少的只是:
如果找不到#include 文件或其依赖项之一,您还可以单击包含语句下的红色波浪线以查看有关如何更新配置的建议。
来源:https://code.visualstudio.com/docs/languages/cpp#_intellisense
【讨论】:
如果没有建议怎么办? 有灯泡,有建议【参考方案5】:如果您正在使用 cmake-tools 并且错误消息显示 configurationProvider 有问题,那么以下操作为我解决了问题:
-
打开c_cpp_properties.json。 (windows上的windows键或mac上的cmd键+shift+p,输入“c/c++编辑配置”并选择'json'。
输入 ms-vscode.cpptools 作为 configurationProvider 的值,而不是 ms-vscode。 cmake-tools 或任何你有的。
configurationProvider替换后的样子:
另一个重要的配置是包含路径。假设您拥有此配置权利。可能如下
【讨论】:
这解决了我的问题!谢谢!【参考方案6】:错误消息“请更新您的 includePath”并不一定意味着 includePath
确实存在问题。问题可能是 VSCode 使用了错误的编译器或错误的 IntelliSense 模式。我在this answer 中写了关于如何排除故障并将您的 VSCode C++ 配置与您的编译器和项目对齐的说明。
【讨论】:
【参考方案7】:我正在尝试一个 hello world 程序,而这一行:
#include <stdio.h>
带有绿色下划线。我试过了:
-
删除行
重写该行
点击黄色灯泡并选择更新
修复了错误警告。我不知道它是否解决了实际问题。但后来我通过 Windows 10 上的 linux VM 进行编译
【讨论】:
【参考方案8】:关闭并重新打开 VS 后,这应该可以解决。
【讨论】:
【参考方案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
如下修改编译器路径
"compilerPath": "/usr/bin/g++",
【讨论】:
如果你没有安装g++,用sudo apt-get install g++
安装【参考方案10】:
对我来说,使用 Ubuntu,我只需要安装 gcc 即可解决此问题。
sudo apt install gcc
然后,将编译器路径设置为 gcc。转到您的 c_cpp_properties.json 文件,设置:
"compilerPath": "/usr/bin/gcc"
【讨论】:
【参考方案11】: 对于Windows:1.安装Mingw-w64
2.然后为您的帐户“C:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin”编辑环境变量
3.重新加载
对于MAC
1.打开搜索,command + shift +P,运行这段代码“c/c++ edit configurations (ui)”
2.打开文件c_cpp_properties.json并将includePath从“$workspaceFolder/**”更新为“$workspaceFolder/inc”
【讨论】:
【参考方案12】:如果有人遇到这个问题,也许你只需要安装 build-essential。
apt install build-essential
【讨论】:
【参考方案13】:在我的情况下,我不需要关闭整个 VS-Code,关闭打开的文件(有时甚至保存它)解决了这个问题。
【讨论】:
【参考方案14】:如果您要使用 g++ 编译文件,另一种答案是在远程 WSL 中打开 VS Code。只需关闭 VS Code 并打开 WSL 并输入 code .
之后,文件资源管理器会显示 VS Code 现在正在 WSL 的上下文中运行,标题栏为 [WSL: Ubuntu]。但请确保您已在 WSL 上安装了 GNU compiler tools and the GDB debugger
。
来源:https://code.visualstudio.com/docs/cpp/config-wsl
【讨论】:
【参考方案15】:如果您已将代码复制并粘贴到 VS Code 中的新文件中
请删除#include <iostream>
并尝试重新构建。
【讨论】:
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案16】:我很幸运地从 .vscode 文件夹中的 c_cpp_properties.json 中删除了 cmets。默认情况下,json 文件中不允许注释,您不能简单地将其重命名为 .jsonc。引用In VS Code, disable error "Comments are not permitted in JSON"
【讨论】:
【参考方案17】:对于 Windows:
-
请将此目录添加到您的环境变量(路径):
C:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin\
-
对于检测到的包含错误,将包含文件夹的路径提及到
“包含路径”:[ "C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/include/"]
,因为这是编译器从中获取要包含在程序中的库的路径。
【讨论】:
以上是关于#include 在 vscode 中检测到的错误的主要内容,如果未能解决你的问题,请参考以下文章
解决“检测到 #include 错误。请更新 includePath”问题和“无法打开 源 文件 "avr/pgmspace.h"”问题(VSCode中进行Arduino开发)(示