Объявление библиотек. Как правильно подключать библиотеки

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Сообщения: 546
Зарегистрирован: Вс дек 30, 2012 00:32:06
Откуда: Николаев / Украина

Сообщение forfrends »

Всем привет! У меня есть два вопроса по подключению библиотек в среде Ардуино.

1) В чем разница между "" и <> в подключении библиотеки? Пример:

Код: Выделить всё

#include "SPI.h"
#include <SPI.h>
Я знаю что это разный способ подключения библиотек (библиотеки берутся из разных мест). Но я не смог найти по этому поводу информации. Можете объяснить что к чему, или дайте ссылку, где об этом можно почитать.

2) Как указать какую именно библиотеку компилятор должен использовать, если их установлено несколько? Вот пример из лога компиляции:

Код: Выделить всё

Несколько библиотек найдено для "SdFat.h"
 Используется: C:\Users\Игорь\Documents\Arduino\libraries\SdFat-master
Не используется: C:\Users\Игорь\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266SdFat
Не используется: C:\Users\Игорь\Documents\Arduino\libraries\SdFat_-_Adafruit_Fork
Не используется: C:\Users\Игорь\Documents\Arduino\libraries\arduino_253084
Как видно, на компьютере установлено несколько одинаковых библиотек, Как мне указать какую именно нужно использовать?

И еще вопрос, вытекающий из предыдущего:
Библиотека SdFat.h автоматически подтягивается из библиотеки SD.h , если я могу явно указать библиотеку SD.h, то какую библиотеку SdFat.h использовать выбирает уже компилятор. И часто выбирает не ту что нужно. Как мне указать компилятору откуда брать библиотеки?

Надеюсь на вашу помощь!
Сделать своими руками всегда интересней чем просто купить и пользоваться
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Самостоятельное написание библиотек под адуринью было где-то между флудом рассеяно в этой теме:
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
Касательно "" и <>....
В большей части для самодельных работает только "" - связано с тем, что определенные в виде папочек библиотеки должны размещаться исключительно в каталоге C:\Documents and Settings\USER\Мои документы\Arduino\libraries
Или без лишней "обвертки" в папке самого проекта.
Но вызов также "". (определено прописями где-то в дебрях самой IDE).
А <> касается только размещенных в "обвертках" компилятора или в каталоге IDE или в скрытых каталогах компиляторов. Это отлтичие ардуино IDE от работы с "чистыми компиляторами" Си.
Копать глубше - наши специалисты не слишком желание имеют...
:(
Относительно "множества одинаковых" - выбираем ту, что актуальна, а остальные временно выносим за пределы папки
C:\Documents and Settings\USER\Мои документы\Arduino\libraries
во временный каталог, к примеру:
C:\Documents and Settings\USER\Рабочий стол\временно заблокированные библиотеки ардуино
или закидываем в архив...
8)
Реклама
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

1. Во-первых .h - это не библиотеки. А заголовочные файлы. Библиотеки ардуино еще и C++ (.cpp) файлы включают в себя. Подключаете вы хидер, который подтягивает уже остальное через скрипты Arduino IDE.
Разница "" и <> в том, что "" - файлы в текущем каталоге ищет (в том же, где и ваш "скетч" лежит), а <> по системным путям. В случае с ардуино последнее - как сказали уже. Но так подключаются не только "библиотеки" ардуино. Но и стандартные C/C++ заголовки в т.ч.

2. Т.к. указание "библиотек" в ардуино сделано "костылем" через подключение хидеров, то афаик - никак. Только убрать в сторону на время ненужные библиотеки.
Ответить

Вернуться в «AVR»