[Erreur] : définitions multiples de
Bonjour ! :mrgreen:
Je suis en train de créer une bibliothèque pour la programmation Arduino.
Cependant, je n'arrive pas à la compiler et ça fait quelques jours que je recherche cette erreur...
led.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 24 25 26 27 28 29 30 31
|
#ifndef __LED_H__
#define __LED_H__
#include "Arduino.h"
class Led {
public:
Led(char pin, bool etat);
~Led();
void changerEtat();
void allumer();
void eteindre();
char getPin() const;
void setPin(char pin);
bool getEtat() const;
void setEtat(bool etat);
private:
void mettreAJour();
void preparerPin();
void appliquerEtat();
char m_pin;
bool m_etat;
};
#endif |
led.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include "led.h"
Led::Led(char pin, bool etat) {
setPin(pin);
setEtat(etat);
mettreAJour();
}
void Led::changerEtat() {
setEtat(1 - getEtat());
}
void Led::allumer() {
setEtat(HIGH);
}
void Led::eteindre() {
setEtat(LOW);
}
char Led::getPin() const {
return m_pin;
}
void Led::setPin(char pin) {
m_pin = pin;
mettreAJour();
}
bool Led::getEtat() const {
return m_etat;
}
void Led::setEtat(bool etat) {
m_etat = etat;
mettreAJour();
}
/* ######### PRIVATE ######### */
void Led::mettreAJour() {
preparerPin();
appliquerEtat();
}
void Led::preparerPin() {
pinMode(m_pin, OUTPUT);
}
void Led::appliquerEtat() {
digitalWrite(m_pin, m_etat);
} |
LIFINO.ino
Code:
1 2 3 4 5 6 7 8 9 10 11
|
#include <led.h>
Led led(13, LOW); //LOW = 1
void setup() {}
void loop() {
led.changerEtat();
delay(500);
} |
Erreurs :
Citation:
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::getPin() const*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::getEtat() const*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::preparerPin()*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::appliquerEtat()*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::mettreAJour()*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::setPin(char)*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::setEtat(bool)*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::Led(char, bool)*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::Led(char, bool)*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::changerEtat()*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::allumer()*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO/led.cpp.o*: Dans la fonction «*Led::eteindre()*»*:
/home/louis/sketchbook/libraries/LIFINO/led.cpp:49*: définitions multiples de «*Led::eteindre()*»
led.cpp.o:led.cpp:49*: défini pour la première fois ici
LIFINO.cpp.o*: Dans la fonction «*_GLOBAL__sub_D_led*»*:
/usr/share/arduino/LIFINO.ino:3*: référence indéfinie vers «*Led::~Led()*»
collect2: error: ld returned 1 exit status
J'ai d'abord pensé à une erreur de directive préprocesseur, mais je n'ai rien trouvé de ce côté-ci...
Merci beaucoup de l'attention ! :)