Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux vscode"#包括检测到的错误。请更新您的includePath_Linux_Arduino_Visual Studio Code_Include Path - Fatal编程技术网

Linux vscode"#包括检测到的错误。请更新您的includePath

Linux vscode"#包括检测到的错误。请更新您的includePath,linux,arduino,visual-studio-code,include-path,Linux,Arduino,Visual Studio Code,Include Path,我试图将vscode与arduino一起使用,但没有成功。 问题似乎与库路径有关。 但我还没能解决这个问题! 我在linux上 “消息”:“#包含检测到的错误。请更新您的includePath。此翻译单元(/home/harold/Arduino/Saaf_Curing/Saaf_Curing.ino)的IntelliSense功能将由标记解析器提供。” 我不知道如何找到我的收信人。 我无法执行vscode中给出的任何建议 我想知道vs代码是否是正确的方向,因为它看起来很复杂?这是因为扩展在初始

我试图将vscode与arduino一起使用,但没有成功。 问题似乎与库路径有关。 但我还没能解决这个问题! 我在linux上

“消息”:“#包含检测到的错误。请更新您的includePath。此翻译单元(/home/harold/Arduino/Saaf_Curing/Saaf_Curing.ino)的IntelliSense功能将由标记解析器提供。”

我不知道如何找到我的收信人。 我无法执行vscode中给出的任何建议


我想知道vs代码是否是正确的方向,因为它看起来很复杂?

这是因为扩展在初始化时缺少一些includepath

将缺少的行添加到c_cpp_properties.json中

"includePath": [
"<arduino ide installation folder>\\tools\\**",
"<arduino ide installation folder>\\hardware\\arduino\\avr\\**",
"<arduino ide installation folder>\\hardware\\tools\\**",
"<arduino ide installation folder>\\hardware\\arduino\\avr\\cores\\arduino"
]
“includePath”:[
“\\tools\\**”,
“\\hardware\\arduino\\avr\\**”,
“\\hardware\\tools\\**”,
“\\hardware\\arduino\\avr\\cores\\arduino”
]

另外,在“配置”下添加“
”定义“:[“USBCON”]
,使串行类与intellisense一起工作

尽管问题提到了Arduino,但以下建议基本上适用于VSCode告诉您“更新includePath”的任何时候

什么是includePath?
includePath
c\u cpp\u settings.json
中的一个属性,该属性位于使用文件在vscode中打开的主文件夹的
.vscode
文件夹中→ 打开文件夹

您可以直接编辑
c\u cpp\u settings.json
,但使用“c/c++配置GUI”通常更容易。为此,请打开命令选项板(Ctrl+Shift+P)并运行“C/C++:编辑配置(UI)”。然后查找“包含路径”设置

includePath
告诉VSCode(特别是的IntelliSense组件)在解析
#include“filename”
指令时要查看的位置。这允许VSCode查看这些文件中定义的符号的定义

那么,当VSCode告诉我时,我应该摆弄includePath吗? 一开始不是!在更改包含路径之前,如果尚未更改,请首先将“编译器路径”设置为指向C/C++编译器,并将“IntelliSense模式”设置为尽可能与编译器匹配

您可能还需要调整编译器参数,特别是如果编译器能够为多个目标生成代码,例如32位和64位代码。(如果您不知道这意味着什么,请先跳过。)

接下来,在命令面板中,运行“C/C++:日志诊断”。输出将向您显示找到的编译器VSCode以及它检测到的内置包含路径和预处理器定义

然后,在shell中运行以下命令:

  $ touch empty.c
  $ gcc -v -E -dD empty.c
这里,我假设您正在使用
gcc
作为编译器。如果不是,则替换实际的编译器命令名。如果您的编译器不是的变体(例如,您使用的是Microsoft
cl.exe
编译器),则需要查看其文档或通过谷歌查找打印预定义宏并包含路径的开关(例如,请参阅for
cl.exe

将上述命令的输出与VSCode在其C/C++诊断输出中显示的内容进行比较。希望它们非常相似。如果没有,请尝试调整编译器路径、IntelliSense模式或编译器参数。一旦通过调整这三个设置使它们尽可能接近,请继续下一步

如有必要,现在调整includePath 如果编译器内置配置与VSCode检测到的配置之间仍然存在显著差异,请通过(在C/C++设置UI中)修改包含路径、定义和C/C++标准字段来修复该差异。重新运行C/C++日志诊断命令以查看效果

可能不需要添加所有预定义的预处理器符号。只有当指令依赖于它们并且导致VSCode将错误代码视为活动代码时,这才真正重要。我建议仅在浏览代码时,如果您看到VSCode出错的特定情况,才添加预定义符号


最后,如果项目中的头文件位于编译器默认情况下不搜索的位置,也就是说,您通常必须在编译器命令行上传递开关,请将它们添加到Include路径。任何必须添加到定义中的参数也是如此。

尝试使用platformIO扩展,它使您的生活更轻松。就我个人而言,我在Arduino和ESP32项目中使用带platformIO的VScode。

在查看已解决的问题时发现了这一点,谢谢!谢谢你的回答。解决了我的问题。给了你一个有用的答案:)对我来说,这是我错过的解决方案。。。硬件/工具/**文件夹在我的路径中。干杯