Подключение библиотек.

krikus
Offline
Зарегистрирован: 22.07.2011

Доброго времени суток.

Возник вопрос, можно ли подключать библиотеку, находящуюся не в папке ArduinoIDE-Libraries , а в папке со скетчем. К примеру:

Вместо <Wire.h>
Писать
Это "Wire/Wire.h"

Я поместил библиотеку Wire в папку со скетчем, но она ругается при подключении :(

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Не рекомендую.

Там еще есть #include <twi.h> который нужно поменять на #include <utility\twi.h>

И файлы wire\wire.cpp и wire\utility\twi.c "ручками" подключить (добавить) к проекту.

krikus
Offline
Зарегистрирован: 22.07.2011

Это касается всех библиотек? Если, к примеру, взять библиотеку SD, там также нужно будет исправить пути к файлам?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Это касается всех библиотек.

krikus
Offline
Зарегистрирован: 22.07.2011

Я положил библиотеку SD в папку скетча, при компиляции выдает ошибку. (хотя все пути исправил)

 error: libs\SD\SD.h: No such file or directory

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Пишите, что положили в папку скетча, а обращаетесь через libs - нелогично.

krikus
Offline
Зарегистрирован: 22.07.2011

Ну да :) Забыл, промежуточная папка libs, а в ней уже библиотеки.

krikus
Offline
Зарегистрирован: 22.07.2011

Структура каталога 

------------------

--777.ino

--libs

---SD

----SD.h

----SD.cpp

----****

-------------------

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

И угловые скобки на двойные кавычки тоже исправили?

krikus
Offline
Зарегистрирован: 22.07.2011

Да

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Приведите полный текст ругани, бывает, что ошибка "наведенная"

krikus
Offline
Зарегистрирован: 22.07.2011

 

BluelectricMotorchikT.ino:1:24: error: libs\SD\SD.h: No such file or directory
BluelectricMotorchikT.ino:3:40: error: libs\MemoryFree\MemoryFree.h: No such file or directory
BluelectricMotorchikT.ino:5:36: error: libs\TimerOne\TimerOne.h: No such file or directory
 
Я подключаю несколько библиотек.
AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Это весь текст? Не может быть. Еще бы кусок скетча сначала до 40 строки...

krikus
Offline
Зарегистрирован: 22.07.2011

Вот весь  

 

BluelectricMotorchikT.ino:1:24: error: libs\SD\SD.h: No such file or directory
BluelectricMotorchikT.ino:2:26: error: libs\SD\SD.cpp: No such file or directory
BluelectricMotorchikT.ino:3:40: error: libs\MemoryFree\MemoryFree.h: No such file or directory
BluelectricMotorchikT.ino:5:36: error: libs\TimerOne\TimerOne.h: No such file or directory
BluelectricMotorchikT.ino:6:36: error: libs\Timer3\TimerThree.h: No such file or directory
BluelectricMotorchikT.ino:7:28: error: libs\glcd\glcd.h: No such file or directory
BluelectricMotorchikT.ino:8:42: error: libs\glcd\bitmaps\allBitmaps.h: No such file or directory
BluelectricMotorchikT.ino:9:41: error: libs\glcd\fonts\Corsiva_12.h: No such file or directory
BluelectricMotorchikT.ino:14:44: error: libs\NESinterface\nesinterface.h: No such file or directory
BluelectricMotorchikT:31: error: 'Image_t' does not name a type
BluelectricMotorchikT:36: error: 'NES' does not name a type
BluelectricMotorchikT:104: error: initializer-string for array of chars is too long
BluelectricMotorchikT:126: error: 'File' does not name a type
BluelectricMotorchikT.ino: In function 'void readButton()':
BluelectricMotorchikT:191: error: 'NES' was not declared in this scope
BluelectricMotorchikT.ino: In function 'void readTexture()':
BluelectricMotorchikT:207: error: 'entry' was not declared in this scope
BluelectricMotorchikT:207: error: 'SD' was not declared in this scope
BluelectricMotorchikT.ino: In function 'void particles()':
BluelectricMotorchikT:271: error: 'GLCD' was not declared in this scope
BluelectricMotorchikT:271: error: 'NON_INVERTED' was not declared in this scope
BluelectricMotorchikT:293: error: 'light' was not declared in this scope
BluelectricMotorchikT:293: error: 'BLACK' was not declared in this scope
BluelectricMotorchikT:298: error: 'INVERTED' was not declared in this scope
BluelectricMotorchikT.ino: In function 'void screenshot()':
BluelectricMotorchikT:320: error: 'SD' was not declared in this scope
BluelectricMotorchikT:324: error: 'entry' was not declared in this scope
BluelectricMotorchikT:324: error: 'SD' was not declared in this scope
BluelectricMotorchikT:324: error: 'FILE_WRITE' was not declared in this scope
BluelectricMotorchikT:329: error: 'bmpHead' was not declared in this scope
BluelectricMotorchikT:333: error: 'GLCD' was not declared in this scope
BluelectricMotorchikT:341: error: 'GLCD' was not declared in this scope
BluelectricMotorchikT.ino: In function 'void recording()':
BluelectricMotorchikT:357: error: 'SD' was not declared in this scope
BluelectricMotorchikT:361: error: 'entry' was not declared in this scope
BluelectricMotorchikT:361: error: 'SD' was not declared in this scope
BluelectricMotorchikT:361: error: 'FILE_WRITE' was not declared
 
И еще столько же * 3
krikus
Offline
Зарегистрирован: 22.07.2011

Кусочек скетча до 40 строки :

#include "libs\SD\SD.h"
#include "libs\SD\SD.cpp"
#include "libs\MemoryFree\MemoryFree.h"
#include "set.h"
#include "libs\TimerOne\TimerOne.h"
#include "libs\Timer3\TimerThree.h"
#include "libs\glcd\glcd.h"
#include "libs\glcd\bitmaps\allBitmaps.h"
#include "libs\glcd\fonts\Corsiva_12.h" 
#ifdef KEYBOARD
#include "libs\PS2KeyboardExt3\PS2Keyboard.h"
#endif
#ifdef NES_CONTROLLER
#include "libs\NESinterface\nesinterface.h"
#endif
//--------------------------------------
int vb;
byte mapLevel = 4;
byte fx, fy = 0;
int vd;

char nameSC[] = "SCR_0000.bmp"; 
char MsgName[12];
char fileVideo[] = "video/VD00.bmp";
char fileBack[10];
int skipX = 0;
int skipY = 32;
char weather = '7';
byte yr = 0;

Image_t player;
#ifdef KEYBOARD
PS2Keyboard kbd;
#endif
#ifdef NES_CONTROLLER
NES NES;
#endif

byte tickCount = false; 
boolean tick = false;
krikus
Offline
Зарегистрирован: 22.07.2011

Если хотите, могу весь проект прислать.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Странно... Попробовал. Действительно - не хочет. По крайней мере, в штатной IDE - только из текущего каталога :(

krikus
Offline
Зарегистрирован: 22.07.2011

Жаль... 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Слеши в двойных кавычках нужно либо удваивать, либо писать прямые. Вот два варианта:

#include "libs/SD/SD.h"
или
#include "libs\\SD\\SD.h"

UPD: Может здесь это не поможет, но забывать про это не стоит.

Проверить не начем на работе.

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Я пробовал прямые - не помогло. Внутри библиотеки есть инклуды с одинарными обратными слешами - работают

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ок. В некоторых компиляторах это важно, видимо здесь - нет.
Если получится, проверю, что то здесь простое.

Pnewmoslon
Offline
Зарегистрирован: 26.07.2014

пролемма . не могу подключить библиотеку пид рега. в папке ливс все лежит в отдельной папке и срр и н, примеры выводит, инклюд пид тоже выводит, а в итоге вот что: fatal error: WProgram.h: No such file or directory. что я делаю не так? подскажите