Bonjour et bonne année à tous.

j'ai écrit un petite bibliothèque pour mon Arduino. lorsque je mets, les fichiers .cpp et .h dans le répertoire de mon sketch, tout va bien. Mais lorsque je les installe en tant que librairie, j'ai une erreur de compilation, dont voici le texte :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\sketch\Tools.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\libraries\Tools\Tools.cpp.o (symbol from plugin): In function `lcd':
(.text+0x0): multiple definition of `Tools::spaces(int)'
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\sketch\Tools.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\libraries\Tools\Tools.cpp.o (symbol from plugin): In function `lcd':
(.text+0x0): multiple definition of `Tools::cls()'
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\sketch\Tools.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\libraries\Tools\Tools.cpp.o (symbol from plugin): In function `lcd':
(.text+0x0): multiple definition of `Tools::erase()'
C:\Users\pasca\AppData\Local\arduino\sketches\F72C5994B7661A9E78E69ECE879FBFB2\sketch\Tools.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
 
exit status 1
je ne comprends pas pourquoi...

Voici une partie de ma déclaration dans le fichier .h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Tools
{
 
public:
 
  void setup();
  void cls();
  void erase();
  String spaces(int nombreEspaces);
  void writeln(String nouvelleLigne);
  void write(String ajouterALaDerniereLigne);
//  void write(bool booleen);
  void write(byte octet);
  void write(char caractere);
  void write(double flottantDoublePrecision);
//  void write(float Flottant);
  void write(int entier);
  void write(long entierLong);
private:
   bool   flagWrite;   
   String ligne[nombreLignes];
   String tamponLigne;
};
Si vous pouviez m'éclairer, ce serait vraiment sympa. Je ne suis pas un pro du c++, je débute alors soyez indulgents.

Merci