ar-*_*std 4 c++ intellisense arduino include visual-studio-code
我想在 VS Code 中开发 Arduino 代码。因此,我安装了 Arduino IDE 和 VS Code 的 Arduino 扩展。
在 VS Code 中打开 Arduino 项目后,扩展为 IntelliSense 创建了以下c_cpp_properties.json
文件(摘录):
"includePath": [
"/Applications/Arduino.app/Contents/Java/tools/**",
"/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/**"
],
"forcedInclude": [
"/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h"
],
Run Code Online (Sandbox Code Playgroud)
强制包含Arduino.h
具有以下相关包含:
// Some includes
#include <avr/pgmspace.h>
// Even more includes
Run Code Online (Sandbox Code Playgroud)
问题是,尽管pgmspace.h
确实存在,但它并不位于相对路径中Arduino.h
(它也不位于两个包含路径之一中)。将 的路径添加pgmspace.h
到包含路径并没有帮助,因为 IntelliSense 似乎正在寻找给定的相对路径。
我的问题是是否有可能通过文件告诉 IntelliSensec_cpp_properties.json
忽略相对路径并仅查找文件?或者你能想出另一种方法来解决这个问题吗?
我自己找到了答案。如果您遇到同样的问题,请尝试以下操作:
添加settings.json
:
"C_Cpp.intelliSenseEngine": "Tag Parser"
Run Code Online (Sandbox Code Playgroud)
这是一个缺点,因为“标签解析器”不具有上下文感知能力。
添加c_cpp_properties.json
:
"configurations": [
{
...,
"browse": {
"path": [
"/Applications/Arduino.app/Contents/Java/tools",
"/Applications/Arduino.app/Contents/Java/hardware/arduino/avr",
"/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include"
],
"limitSymbolsToIncludedHeaders": true
}
}
]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5118 次 |
最近记录: |