Как использовать предварительно скомпилированную библиотеку в проекте с Arduino-IDE
Я изучаю разработку Arduino и после долгих поисков в Google не могу найти ответ на следующий вопрос.
Я хотел бы распространить некоторый код в виде mylib.h + предварительно скомпилированный mylib.o (это будет код, перенесенный из источников, которые я не могу разглашать).
Как можно построить скетч, используя предварительно скомпилированный файл mylib.o в среде Arduino-IDE?
Нужно ли мне просто поместить этот mylib.o в определенный путь и включить mylib.h в скетч? Если да, то какой путь? Если нет, какие конкретные шаги по настройке мне нужно выполнить?
Заранее спасибо.
@fpierrat, 👍0
1 ответ
Лучший ответ:
См. https://github.com/arduino/Arduino/wiki/Arduino. -IDE-1.5:-Спецификация библиотеки
Формат файла library.properties [...] предварительно скомпилированный — (доступен в Arduino IDE 1.8.6/arduino-builder 1.4.0) (необязательно) установите значение true, чтобы разрешить использование файлов .a (архив) и .so (общий объект). Файл .a/.so должен находиться по адресу src/{build.mcu}, где {build.mcu} — это имя архитектуры целевой системы, для которой был скомпилирован файл. Пример: Cortex-m3 для Arduino DUE. Статическая библиотека должна быть связана как ldflag.
Таким образом, при правильных метаданных и макете файла предварительно скомпилированные объекты должны быть доступны. Вам нужно будет установить свойство architectures, чтобы указать, что вы используете esp8266, как предполагает ваш тег.
Дополнительную информацию о менеджере библиотеки можно найти здесь https://github.com/arduino/Arduino/wiki/ Библиотека-Менеджер-Часто задаваемые вопросы, включая информацию о том, как добавить в список публичных библиотек.
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]