Подключение библиотеки из папки со скетчем

sound
Offline
Зарегистрирован: 12.07.2018

Вобщем есть папка со скетчем, в этой же папке размещается папка с бибилиотекой GyverButton/GyverButton.h и подключается в скетче:

#include "GyverButton/GyverButton.h"

void setup() {
  // put your setup code here, to run once:
GButton butt(5);
 butt.tick();
}

void loop() {
  // put your main code here, to run repeatedly:

}

при компиляции этого кода выдает ошибку:


C:\ccOrnwLf.ltrans0.ltrans.o: In function `setup':

C:\sketch_dec24a/sketch_dec24a.ino:5: undefined reference to `GButton::GButton(unsigned char)'

C:\sketch_dec24a/sketch_dec24a.ino:6: undefined reference to `GButton::tick()'

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board Arduino Nano.

Я так понимаю невидет компилятор файла GyverButton.cpp который находится в тойже папке что и GyverButton.h.

Когда файлы GyverButton.cpp и GyverButton.h ложу рядом со скетчем без папки GyverButton, все работает.

Как мне сделать чтобы работало с папкой в которой бы находились файлы библиотеки, так как будет много бибилиотек и  хотелось бы все структорировать по папкам и в директории со скетчем.

rkit
Offline
Зарегистрирован: 23.11.2016

Никак. И сверх того, библиотеки рассчитаны на то, что их будут использовать из менеджера, так что даже если всё сложить в одну папку, без правки кода библиотек много чего работать не будет.

5N62V
Offline
Зарегистрирован: 25.02.2016

...находится в тойже папке что и GyverButton.h.

 

Ну не знаю... Пока не встречал, чтобы библиотеки не работали, но это може быть пока.

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

b707
Offline
Зарегистрирован: 26.05.2017

sound пишет:

Как мне сделать чтобы работало с папкой в которой бы находились файлы библиотеки, так как будет много бибилиотек и  хотелось бы все структорировать по папкам и в директории со скетчем.

установить библиотеку как положено, в папку libraries