Как переключать компиляцию библиотек в Arduino?

В Arduino IDE возможно переключение компиляции библиотек с помощью нескольких методов. Ниже я приведу два наиболее распространенных способа.

1. Изменение настроек компиляции в файле platform.txt:
В Arduino IDE каждая платформа (например, Arduino Uno, Arduino Mega, ESP8266) имеет свой файл platform.txt, в котором содержатся настройки компиляции. Чтобы изменить компиляцию библиотек, необходимо открыть соответствующий файл для выбранной платформы.

Чтобы найти путь к файлу platform.txt, перейдите в папку, в которой установлена Arduino IDE, затем откройте папку hardware и далее выберите папку, соответствующую вашей платформе (например, arduino-avr для Arduino Uno). В этой папке вы найдете файл platform.txt, который можно редактировать.

В файле platform.txt вы найдете раздел, который содержит правила компиляции и линковки для библиотек. Вы можете изменить эти правила, чтобы адаптировать компиляцию под свои нужды. Обычно это включает добавление или удаление опций компилятора (например, -I для пути к заголовочным файлам библиотеки), настройку флагов оптимизации, выбор альтернативных библиотек и т.д.

После внесения изменений в файл platform.txt необходимо перезагрузить Arduino IDE, чтобы изменения вступили в силу.

2. Создание джонни-файла:
Другой способ изменения компиляции библиотек в Arduino IDE - использование джонни-файлов (.cpp и .h файлы). Джонни-файлы предоставляют возможность переопределить настройки компиляции для специфических библиотек или проектов.

Для создания джонни-файла следует создать файл с расширениями .cpp и .h с тем же именем, что и у библиотеки, и поместить его в ту же папку, где находится Arduino скетч (проект). В джонни-файле можно переопределить настройки компиляции, используя директивы препроцессора #pragma и #include, которые будут применяться только к данной библиотеке.

Например, в джонни-файле можно добавить дополнительные опции компилятора (-I для пути к заголовочным файлам и -D для определения макросов) или изменить флаги компоновки. Это позволяет переопределить поведение компиляции только для определенных библиотек или проектов без необходимости изменять файл platform.txt.

После создания джонни-файла и его настройки автоматически применятся при компиляции проекта в Arduino IDE.

Оба способа позволяют настраивать компиляцию библиотек в Arduino IDE в соответствии с вашими потребностями и предоставляют больше гибкости при разработке проектов на Arduino.