Библиотеки в проекте

Библиотека подключается в скетче как обычно:

#include <Adafruit_NeoPixel.h>

Но одного #include мало: библиотеку нужно ещё отметить в списке под редактором — библиотеки проекта. Без отметки сборка упадёт на той самой строке.

Почему список, а не автоматически

Компилятору нужен путь к каталогу библиотеки, а не её имя. Имя, набранное руками, расходится с установленным молча: сборка падает на #include, и связать одно с другим человеку нечем. Поэтому в проекте отмечается то, что действительно стоит на сервере.

Почему устанавливает администратор

Библиотека — это чужой исходный код, который будет собираться у каждого, кто нажмёт «Запустить». Доверие к ней такое же, как к самому серверу.

Установка идёт отдельным шагом, вне сборки: сама сборка по-прежнему работает без сети, и это решение мы менять не собираемся.

Собралось — не значит заработает

Компилятор знает про #include. Про модель периферии он не знает ничего. Библиотека для TFT-экрана соберётся прекрасно, а экран останется чёрным, потому что SPI не смоделирован.

Перед запуском симулятор перечисляет в логе сборки, чем он отвечает за каждую деталь схемы, и отдельной строкой — чего у него нет. Эту часть лога стоит читать.