Как использовать существующую (не специфичную для Arduino) библиотеку с вложенными папками в Arduino IDE?

У меня есть универсальная библиотека c++, которую я хотел бы использовать в проекте arduino без внесения изменений в код библиотеки. Библиотека содержит вложенные папки, и файлы в библиотеке включают в себя другие файлы той же библиотеки с включениями формы

#include "libraryroot/subfoldername/header.h"

Я попытался положить libaryroot в C:/Users/Username/Documents/Arduino/libraries но пока я могу включить заголовки, которые лежат непосредственно внутри 'libraryroot с помощью #включают <filename.h> (не #включают <libraryroot filename.h="">), Ардуино не удается найти заголовки эти файлы включают

Как я могу использовать такую библиотеку в Arduino без необходимости изменять библиотеку?

, 👍1

Обсуждение

https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#layout-of-folders-and-files, @Juraj

Проверьте ввод-вывод платформы для кода Visual studio. Это гораздо лучшая среда разработки, и она позволит вам легче выполнять такие задачи., @geometrikal

@Juraj Я уже читал это, но я все еще не понял, как это можно сделать, @matthias_buehlmann


1 ответ


1

Чтобы использовать вложенные папки с любым именем в библиотеке Arduino, вы должны использовать спецификацию библиотеки 1.5.

В папке библиотеки в папке скетча создайте папку для библиотеки. В этой папке создайте подпапку src и поместите исходный код библиотеки в эту подпапку. Затем создайте файл library.properties в корневой папке библиотеки с некоторой фиктивной информацией. Заполните ключ includes основным файлом .h библиотеки.

Documents/
  Arduino/
   libraries/
     FooLib/
      src/
       subfoldername/
        header.h
        some.h
        some.cpp 
       foolib.h 
       foolib.cpp
      library.properties

В коде затем используйте in #укажите путь с папкой src в качестве начального местоположения.

#включить <имя подпапки/заголовок.h><имя подпапки/заголовок.h>

,