Обновление : дополнительные библиотеки устанавливать не нужно. IntelliSense может работать с использованием только заголовков, установленных приложением Arduino, но некоторые другие могут помочь. Больше обновлений ниже.
При сборке VSCode используется SDK. Однако IntelliSense не может читать файлы SDK для работы (насколько я могу судить), что выбрасывает эти досадные ошибки и устраняет большинство возможностей завершения кода.
Необходимо настроить includePath
и browse.path
. includePath
не включает рекурсив (но эта функция, похоже, скоро появится). browse.path
является рекурсивным, но точное расположение заголовочных файлов в includePath
все еще необходимо для функций IntelliSense. browse.path
будет использовать Tag Parser для предоставления таких инструментов, как «лампочка», по которой вы можете щелкнуть, чтобы решить вашу проблему includePath
. (Источник: В чем разница между "includePath" и "browse.path" в c_cpp_properties.json? )
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:
1. Установить WinAVR
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",
],
Альтернативный метод (вероятно, плохая идея):
Если вы можете получить версию какой-либо отсутствующей библиотеки, вы, вероятно, можете поместить ее в папку libraries
вашего проекта, если ваш includePath
включает "${workspaceFolder}/libraries"
. Убедитесь, что пространство имен вашей библиотеки правильно, например, libraries/avr/pgmspace.h
. Я не проверял этот метод.
Обновления:
- Изменен из home.path для включения пути. Подробнее здесь: vscode-cpptools / FAQ
- Инструменты, загруженные библиотеками
vscode-arduino
, не нужны в Windows 10.
- Изменены пути конфигурации Windows для использования прямой косой черты вместо экранированной обратной косой черты.
Источник и дополнительные советы: Включение Arduino Intellisense с помощью кода Visual Studio