Utiliser une librairie dans une librairie

Bonsoir.

Je voudrais développer une librairie qui requiert une librairie Arduino existante (SD).
J'aimerais inclure SD.h dans ma librairie, afin que l'utilisateur n'ait pas à taper le #include <SD.h>, en début de son sketch.

Avec un #include <SD.h> au début de ma librairie ça ne compile pas, même en copiant le dossier de la lib SD dans le dossier de ma lib.

Je pense que c'est parce que le compilateur Arduino se base sur les #include du scketch pour inclure les librairies, du coup vu que là je suis pas dans le sketch ça ne fonctionne pas.

Edit : J'imagine que ça doit être lié, je n'arrive pas non plus à décomposer une librairie en plusieurs classes (et plusieurs fichiers).

Merci pour votre aide.

Bonsoir,

J'imagine que ce que tu veux faire c'est plutot :

#include <SD.h>

Le définir ne sert pas à grand chose

hem, oui :grin: :grin: :grin:
C'est corrigé.

L'erreur n'était que dans le post ?

Dans le premier post, tu dis que ça ne compile même pas, donc quelle erreur ?

D'après ce que j'ai compris, quand tu utilise des <> pour inclure un fichier, il va chercher celle installé avec l'ide, si tu utilises des "", il va chercher en premier dans ton dossier lib

salut,

roipoussiere:
Je pense que c'est parce que le compilateur Arduino se base sur les #include du scketch pour inclure les librairies, du coup vu que là je suis pas dans le sketch ça ne fonctionne pas.

Effectivement, il faut aussi inclure la bibliothèque dans le sketch. Spécificité d'Arduino :cold_sweat:

Oui l'erreur était dans le post.

SesechXP:

roipoussiere:
Je pense que c'est parce que le compilateur Arduino se base sur les #include du scketch pour inclure les librairies, du coup vu que là je suis pas dans le sketch ça ne fonctionne pas.

Effectivement, il faut aussi inclure la bibliothèque dans le sketch. Spécificité d'Arduino :cold_sweat:

Arrr!

Du coup, pas moyen de créer des librairies de plusieurs classes, de manière à structurer un peu le code ?
Ex : malib.h requiert maclasse1.h : en en-tête de malib.h je devrais normalement avoir #include "maclasse1.h", mais impossible :confused:

Coment faire ?
Laisser tomber Arduino et compiler direct avec avr-gcc? :smiley: