Написание библиотеки есть у кого опыт?
- Войдите на сайт для отправки комментариев
Втр, 24/10/2017 - 13:57
Пишу универсальную библиотеку с шаблонами с++, atmel studio, stm8 iar, stm32 keil
Нужно чтобы библиотека работала и с ардуино причем как с ардуинками так и с esp
Есть у кого опыт? Даже не написанияс нуля, а настройки готовой библиотеки на работу с arduino ide?
И Вы туда же?
А что именно интересует? Директивы условной компиляции под разные камни? Если да, то:
Под ESP стоит попробовать:
Ещё - в boards.txt есть дефайны под каждую из установленных плат - можно их тоже юзать.
дефайны я так понимаю работают теже, что есть в atmel studio так как toolchain один
интересует как должны быть расположены файлы библиотек, чтобы все это было правильно доступно из скетчей
понятно, что в libraries, но как внутри? при этом хотелось бы сохранить универсальную структуру папок и файлов которая бы работала и для ардуино и для других компиляторов
сейчас у меня две библиотеки, под каждую своя папка и внутри наборы рахных .h и .cpp файлов, десятки классов и шаблонов
И Вы туда же?
вопрос не раскрыт)) не знаю что ответить
дефайны я так понимаю работают теже, что есть в atmel studio так как toolchain один
интересует как должны быть расположены файлы библиотек, чтобы все это было правильно доступно из скетчей
понятно, что в libraries, но как внутри? при этом хотелось бы сохранить универсальную структуру папок и файлов которая бы работала и для ардуино и для других компиляторов
сейчас у меня две библиотеки, под каждую своя папка и внутри наборы рахных .h и .cpp файлов, десятки классов и шаблонов
Для Arduino IDE достаточно сделать архив, где есть корневая папка с названием библиотеки, внутри неё - могуть прям сразу лежать исходники, могут - внутри папки src, рядом с папкой src может быть папка examples, внутри которой в разных папках - скетчи с примерами. В корневой папке также может присутствовать файл keywords.txt, который описывает ключевые слова, которые надо подсвечивать редактором.
Для остальных сред разработки - можно применить такой же формат, имхо, т.к. в глобальных настройках среды всегда можно указать ещё один include path ;)
в глобальных настройках среды всегда можно указать ещё один include path ;)
Подскажите где именно?
Подскажите где именно?
речь видимо про другие среды, в Atmel/IAR/Keil это указывается в настройках проекта
DIYMan спасибо за разъяснения. какая то связь между названием библиотеки (корневой папки библиотеки) должна быть с названиями файлов исходников или это не важно?
думаю можно было бы линковать исходники для других сред в папку src выделенной папки библиотеки в ардуине тогда наверно это было бы оптимально
В упор нинашол на VS + VMicro
Vmicro надстройка над arduino ide, в ардуино ide нет возможности указать отдельные пути под скетч
В упор нинашол на VS + VMicro
VS - Visual Studio?
Ну, наведите мыша на проект (не солюшн, а именно проект), вызовите его свойства, там
вот для #include
а вот для заранее скомпилированных библиотек
Не смотрел последние версии vmicro, в старых VS использовался лишь как среда редактирования, если так и осталось то настройки самой studio ни на что не повлияют
У меня там только стандартные VS каталоги. К ардулибам там путей нет.
Так там можно свои добавлять! Добавьте - будет.
Спасибо.
DIYMan спасибо за разъяснения. какая то связь между названием библиотеки (корневой папки библиотеки) должна быть с названиями файлов исходников или это не важно?
Для Arduino IDE - не знаю, важно или нет, но все библиотеки, что у меня стоят, имеют названия файлов *.cpp и *.h ровно такое, как название папки, куда эта библиотека закорячена, например, библиотека UTFT лежит в папке UTFT, внутри файлы UTFT.cpp и UTFT.h.
Библиотека U8GLib лежит в одноимённой папке, внутри папка src, внутри папки src файлы U8GLib.cpp и U8GLib.h.
Для Arduino IDE - не знаю, важно или нет, но все библиотеки, что у меня стоят, имеют названия файлов *.cpp и *.h ровно такое, как название папки, куда эта библиотека закорячена, например, библиотека UTFT лежит в папке UTFT, внутри файлы UTFT.cpp и UTFT.h.
Библиотека U8GLib лежит в одноимённой папке, внутри папка src, внутри папки src файлы U8GLib.cpp и U8GLib.h.
для дуино иде не важны имена папок и типы файлов - важно только, что бы барахло валялось папках в любой из папок libraries дистрибутива или в папке *\Мои документы\Arduino\libraries\ и не конфликтовало по именам.
*узнаваемые имена папок - чисто для удобства ползателя.