更新: 不需要安装额外的库。IntelliSense可以仅使用由Arduino应用程序安装的头文件运行,但是其他一些库可能有所帮助。下面有更多更新。
在VSCode构建时,它使用SDK。但是,IntelliSense无法读取SDK文件以进行操作(据我所知),这会导致这些烦人的错误并消除大多数代码完成功能。
需要配置includePath
和browse.path
。 includePath
不会递归包含(但该功能似乎即将推出)。browse.path
是递归的,但仍然需要在includePath
中包含标头文件的确切位置以获得IntelliSense功能。 browse.path
将使用标记解析器提供诸如可以单击的“指示灯”等工具来帮助解决您的includePath
问题。(来源:c_cpp_properties.json中的“includePath”和“browse.path”之间有什么区别?)
Mac:
avr/pgmspace.h
位于:/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/avr/pgmspace.h
。它被编码到库中作为avr/pgmspace.h
;因此,我们需要包含avr
所在的路径。
2. 编辑c_cpp_properties.json:
"includePath": [
"${workspaceFolder}/libraries",
"/System/Library/Frameworks/Kernel.framework/Versions/A/Headers",
"/Applications/Arduino.app/Contents/Java/libraries",
"/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include",
"/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants/standard"
],
"browse": {
"limitSymbolsToIncludedHeaders": false,
"path": [
"/System/Library/Frameworks/Kernel.framework/Versions/A/Headers",
"/Applications/Arduino.app/Contents/Java/"
]
},
"forcedInclude": [
"/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h"
],
Windows 10:
2. 编辑c_cpp_properties.json:
将includePath
修改为以下形式:
"includePath": [
"{$workspaceFolder}/libraries",
"C:/Program Files (x86)/Arduino/hardware/tools/avr/lib/gcc/avr/5.4.0/include",
"C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino",
"C:/Program Files (x86)/Arduino/hardware/arduino/avr/variants/standard",
"C:/Program Files (x86)/Arduino",
],
替代方法(可能不是一个好主意):
如果您可以获得任何缺失库的版本,且您的includePath
包含"${workspaceFolder}/libraries"
,则可以将其放入项目的libraries
文件夹中。请确保适当地命名您的库,例如libraries/avr/pgmspace.h
。我没有测试过这种方法。
更新:
从 home.path 更改为 includePath。详见:vscode-cpptools/FAQ
vscode-arduino
库下载的工具在 Windows 10 上不是必要的。
- 将 Windows 配置路径更改为使用正斜杠而不是转义反斜杠。
源代码和更多提示:在 Visual Studio Code 中启用 Arduino 智能感知