Problème librairie c++ pour Arduino
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:
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:
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
probleme d'initialisation de mon tableau
j'ai un problème d'initialisation de mon tableau, voici la partie du code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class Tools : public LiquidCrystal_I2C {
private:
bool flagWrite;
// String ligne[nombreLignes];
char** ligne;
String tamponLigne;
void _write(String value);
uint8_t nombreLignes;
uint8_t nombreColonnes;
public:
// Constructeur
Tools(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows) : LiquidCrystal_I2C(lcd_Addr,lcd_cols,lcd_rows) {
ligne = new char*[lcd_rows];
for (int i = 0; i < lcd_rows; i++) ligne[i] = new char*[lcd_cols];
nombreLignes = lcd_cols;
nombreColonnes = lcd_rows;
}; |
le but est de créer un tableau de chaine de caractères fixe dépendant des paramètres du constructor.
Si vous pouviez m'éclairer, ce serait vraiment sympa. Je débute en C++, alors un peu d'indulgence s'il vous plait. Merci.
Probleme de parametre d'une fonction
Bonsoir,
j'ai un nouveau problème :
Code:
1 2
|
void Tools::writeln(char* nouvelleLigne) |
avec le message d'erreur :
Citation:
C:\Users\pasca\Documents\Arduino\Writeln_LCD\Tools.h:48:37: warning: ISO C++ forbids declaration of 'writeln' with no type [-fpermissive]
Tools::writeln(char* nouvelleLigne);
pouvez vous m'éclairer, s'il vous plait ?
Merci
Bien vue mais j'ai encore un warning
Merci pour ton aide
le void ajouté il me donne un warning :
Citation:
In file included from C:\Users\pasca\Documents\Arduino\Writeln_LCD\Tools.cpp:11:0:
C:\Users\pasca\Documents\Arduino\Writeln_LCD\Tools.h:48:8: warning: extra qualification 'Tools::' on member 'writeln' [-fpermissive]
void Tools::writeln(char* nouvelleLigne);
une idée ? Merci