Bonjour !

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 : 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
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

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 !