vscode "#include errors detected. Please update your includePath
我试图将vscode与arduino一起使用,但没有成功。
问题似乎出在库路径上。
但是我还不能解决这个问题!
我在linux上。
1 | "message":"#include errors detected. Please update your includePath. IntelliSense features for this translation unit (/home/harold/Arduino/Saaf_Curing/Saaf_Curing.ino) will be provided by the Tag Parser.", |
我不知道如何找到我的includePath。
我无法在vscode中给出任何建议。
我想知道vs代码是否真的正确,因为它似乎很复杂?
尽管问题提到了Arduino,但以下建议基本上适用于VSCode告诉您"更新includePath"的任何时间。
什么是includePath?
您可以直接编辑
那么当VSCode告诉我时,我应该摆弄includePath吗?
一开始不是!在更改包含路径之前(如果尚未更改),请首先将"编译器路径"设置为指向C / C ++编译器,然后将" IntelliSense模式"设置为尽可能与编译器匹配。
您可能还需要调整Compiler参数,尤其是在编译器能够为多个目标生成代码的情况下,例如32位和64位代码。 (如果您不知道这是什么意思,请先跳过。)
接下来,在命令面板中,运行" C / C ++:日志诊断"。输出将显示给您找到哪个编译器VSCode以及其内置包含路径和预处理器定义所检测到的内容。
然后,在shell中运行以下命令:
1 2 | $ touch empty.c $ gcc -v -E -dD empty.c |
在这里,我假设您正在使用
将以上命令的输出与VSCode在其C / C ++诊断输出中显示的内容进行比较。希望它们非常相似。如果不是,请尝试调整编译器路径,IntelliSense模式或编译器参数。通过仅调整这三个设置使它们尽可能接近后,请继续下一步。
现在根据需要调整includePath
如果编译器的内置配置和VSCode检测到的配置之间仍然存在重大差异,请通过(在C / C ++设置UI中)修改"包含路径","定义"和" C / C ++"标准字段来解决此问题。重新运行C / C ++日志诊断命令以查看效果。
可能没有必要添加所有预定义的预处理器符号。仅当存在依赖它们的
最后,如果您的项目中的头文件位于编译器默认不搜索的位置,也就是说,通常您必须在编译器命令行中传递
这是由于扩展在初始化时缺少一些包含路径
将缺少的行添加到您的c_cpp_properties.json中
1 2 3 4 5 6 | "includePath": [ "\\tools\\**", "\\hardware\\arduino\\avr\\**", "\\hardware\\tools\\**", "\\hardware\\arduino\\avr\\cores\\arduino" ] |
还要在"配置"下添加