problème de compilation et de librairie

Bonjour je me présente je suis nouveau sur le forum et je commence a m'intéresser a l'arduino je suis en train d'apprendre le langage c depuis peu et je dois dire que j'ai pas mal de difficulté a compilé un code en particulier quant je compile j'ai une erreur de compilation pour la carte Arduino /Genuino Uno

In file included from C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino:2:0:

C:\Users\chris\Documents\Arduino\libraries\Adafruit_SSD1306-1.1.2/Adafruit_SSD1306.h:49:10: fatal error: Adafruit_GFX.h: No such file or directory

 #include <Adafruit_GFX.h>

          ^~~~~~~~~~~~~~~~

compilation terminated.

Plusieurs bibliothèque trouvées pour "Adafruit_SSD1306.h"
Utilisé : C:\Users\chris\Documents\Arduino\libraries\Adafruit_SSD1306-1.1.2
Plusieurs bibliothèque trouvées pour "SPI.h"
Utilisé : C:\Program
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

Est ce que quelque'uns aurais une idées pour régler mon soucis? Merci

Le compilateur ne trouve pas le fichier Adafruit_GFX.h
Cette librairie (Adafruit_GFX_Library) est installé sur ton ordi?

savoriano:
Le compilateur ne trouve pas le fichier Adafruit_GFX.h
Cette librairie (Adafruit_GFX_Library) est installé sur ton ordi?

Si elle n'est pas installée, tu vas dans le menu Croquis et tu fais ceci :

Une fenêtre s'ouvre et tu tapes gfx dans 'filtrer la recherche', tu sélectionnes la bibliothèque Adafruit GFX et tu l'installes

merci de votre aide maintenant j'ai plein d'erreur dans le code je pence.

C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino:12:27: warning: invalid conversion from 'void*' to 'char**' [-fpermissive]

 char **tabRecords = malloc(sizeof(char*) * 30);

                     ~~~~~~^~~~~~~~~~~~~~~~~~~~

C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino:13:25: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

 char * datas          = "";

                         ^~

C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino: In function 'void loop()':

C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino:106:38: warning: invalid conversion from 'void*' to 'char*' [-fpermissive]

       tabRecords[nbRecords] =  malloc(sizeof(char)*30);

                                ~~~~~~^~~~~~~~~~~~~~~~~

C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino: At global scope:

C:\Users\chris\Documents\Arduino\sketch_nov25a\sketch_nov25a.ino:7:15: warning: 'char* dec2binWzerofill(long unsigned int, unsigned int)' used but never defined

 static char * dec2binWzerofill(unsigned long Dec, unsigned int bitLength);

               ^~~~~~~~~~~~~~~~

C:\Users\chris\AppData\Local\Temp\ccQ6DSpd.ltrans0.ltrans.o: In function `loop':

C:\Users\chris\Documents\Arduino\sketch_nov25a/sketch_nov25a.ino:103: undefined reference to `dec2binWzerofill(unsigned long, unsigned int)'

C:\Users\chris\Documents\Arduino\sketch_nov25a/sketch_nov25a.ino:107: undefined reference to `dec2binWzerofill(unsigned long, unsigned int)'

collect2.exe: error: ld returned 1 exit status

Plusieurs bibliothèque trouvées pour "Wire.h"
Utilisé : C:\Program
Plusieurs bibliothèque trouvées pour "Adafruit_SSD1306.h"
Utilisé : C:\Users\chris\Documents\Arduino\libraries\Adafruit_SSD1306-1.1.2
Non utilisé : C:\Users\chris\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED
Plusieurs bibliothèque trouvées pour "SPI.h"
Utilisé : C:\Program
Plusieurs bibliothèque trouvées pour "Adafruit_GFX.h"
Utilisé : C:\Users\chris\Documents\Arduino\libraries\Adafruit_GFX_Library
Plusieurs bibliothèque trouvées pour "RCSwitch.h"
Utilisé : C:\Users\chris\Documents\Arduino\libraries\rc-switch-2.6.2
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

malloc() est une mauvaise idée.
D'où vient ce code ?

La fonction dec2binWzerofill est bien déclarée mais définie nulle part :

static char * dec2binWzerofill(unsigned long Dec, unsigned int bitLength);

Si tu lis les commentaires, apparemment tu n'es pas le seul a avoir le problème.

Je dirais que c'est du code non compilable. L'auteur ne répond même pas aux demandes.

La fonction existe ici : rc-switch/output.ino at master · sui77/rc-switch · GitHub
Fais un copier coller.

Je vais essayer, merci je vous tiens au courant.

Merci de ton lien hbachetti mais étant débutant je ne sais pas trop a quel endroit exactement je doit le coller peut tu m'éclairer ? s'il te plait :slight_smile:

Heu ... copier / coller la fonction dec2binWzerofill dans ton code te pose problème ?
Je ne vois pas, à moins que tu ne saches pas ce qu'est une fonction ?

Par curiosité : que comptes-tu faire de ce code ?
Il pourrait, selon les dires de l'auteur, servir à ouvrir un portail ou un garage pour faire une farce. Mais comment être sûr qu'il ne sera pas utilisé à d'autres fins ... moins drôles

Dans mon cours de langage c je suis au chapitre des fonctions dukou je ne suis pas vraiment sur de ce que je fait. Et je compte mettre toute mes télécommandes et celles de mon entourage dans un seul appareils . Je ne pence pas que ça soit si dangereux que ça comme appareils tu peut copier que les télécommande en ta possession de toute façon. Par contre un objet comme celui la oui GitHub - samyk/opensesame: OpenSesame attacks wireless garages and can open most fixed-code garages and gates in seconds using a Mattel toy

je vois tres bien l'utilité : cloner mes telecommandes on/off qui servent une fois par an à noël pour commander les diférentes guirlandes intérieures/extérieures, vu la petite taille des émetteurs, ils disparaissent par enchantement au gré du passage d'"invités",depuis 4 ans je me retrouve avec 7 boitiers récepteurs de marques différentes (1x3 et 1x4), sans les emetteurs correspondants, c'est trop tard pour le clonage, faudrait que je les ouvre pour connaitre le chip décodeur installé, trouver le protocole afférant et "reconstruire" chaque émetteur, :confused:

Et ça serait bête de racheter des guirlandes . Ils sont sympas tes invités pour te piquer tes télécommande :o