Réaction bizzare de l'IDE ou mon ignorance?

Après des années d'usage d'un écran très connu : afficheur Sparking I2C LCD 128x64 pixels :

En voulant recompiler un ancien programme éprouvé, mon IDE me dit :

Compilation error : I2C_LCD.h : no such file or directory

Si je veux importer la librairie ZIP (I2C_LCD_Library.zip) je reçois:

Error: 13 INTERNAL: Library install failed: archive is not valid: multiple files found in zip file top level

Même problème pour SoftwareSerial.h ! alors que ce dernier semble inclus dans l'IDE ?

( mon IDE est version 2.3.6. mes précédents usages datent de 2-4 ans environ)

Autre sujet: Comment éviter les aides en lignes qui cache les fonctions pour donner une aide à leur sujets quand le pointeur passe dessus
Bien à vous.

Post mis dans la mauvaise section, on parle anglais dans les forums généraux, je viens de déplacer le post dans la section francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone".

désolé. Merci.Avec mes meilleures salutations.

Avez vous mis à jour les bibliothèques ? si vous ouvrez l’ancien IDE, est-ce que ça fonctionne mieux ?

Bonjour,
Merci de l'idée.
J'avais fait les mises à jour. J'ai testé avec la version 1.8.19. J'ai aussi télécharger, pour elle, le fichier ZIP que j'avais utilisé dans le passé. Ca ne change rien.
Ce qui me trouble est que je ne vois pas exactement l'identité de l'écran par le gestionnaire de bibliothèque après le téléchargement réussi.
J'ai le sentiment qu'il y a un petit "truc" qui m'échappe...
Cordialement.

Oui, effectivement ce zip ne contient pas une librairie au standard actuel.
Mais tu peux l'installer à la main.
Il suffit d'extraire le contenu de l'archive pour le copier dans un répertoire I2C_LCD dans le répertoire library situé dans le répertoire qui contient tout tes projets (généralement Arduino, mais tu as pu choisir un autre nom).

Ne pas oublier non plus que les 2 versions de l'IDE partagent les même outils et bibliothèques.

  • Faire Ctrl+Shift+P
  • une fenêtre s'ouvre
  • Dans le champs de recherche, saisir "Afficher les param" <=== Bien respecter la casse
  • Cliquer sur la ligne "Afficher les paramètres (IU)"
  • Un nouvel onglet s'ouvre avec un champ de recherche dans le haut
  • Taper "Contrôle si le pointage" <=== Bien respecter la casse et les accents
  • Décocher "Contrôle si le pointage est affiché"
  • On peut refermer l'onglet

A noter, ce popup est malgré tout intéressant mais il a surtout tendance à apparaître un peu trop vite lors du survol.

  • Dans ce cas, on saisit dans le champs de recherche "Hover"
  • Puis on fait défiler les résultats de la recherche pour trouver "Workbench > Hover:Delay"
  • Là, on peut mettre un temps plus long avant apparition du popup (qui est de 500ms par défaut) ainsi lorsqu'on veut voir la définition il suffit juste de rester un peu plus longtemps sur la ligne.

Merci pour ces premières infos. J'ai eu l'impression de comprendre et j'ai donc placé manuellement le fichier I2C_LCD dans le dossier des librairies . Mais j'ai le même problème...


Peux tu donner un coup d'oeil sur ces copies d'écran ?
Cordialement.

Merci pour l'accès aux paramètres de réglages du soft. ( avec le mac, il faut prendre la touche Commande a la place de Option)
Cordialemnent

Tu voulais dire il faut prendre Commande à la place de Ctrl.

exact !

Tu as un afficheur Sparking I2C LCD.
Sparking fournit des librairies pour ses produits.

Dans le répertoire "Ressources" il y a un fichier I2C_LCD_Library.zip

  • tu le charges
  • tu le décompresses dans "libraries/I2C_LCD"
  • tu devrais avoir quelque chose comme ça

Bonjour, Merci de poursuivre cette aide.
C'est étrange car le dezipage n'a pas donné "I2C_LCD.h" mais "I2C_LCD.md" ! et je retrouve le même échec.
J'ai retrouvé le fichier "I2C_LCD.h" que j'utilisais il y a 2-3 ans. Je l'ai remis dans le dossier où l'IDE semble le chercher


(si j'ai bien compris les commentaires de la compilation). Voici les copies d'écran de l'organisation des fichiers et le résultat de la compil. Mon niveau ne me permet pas de tout comprendre ( ce qui ne m'avait pas gêné dans les années précédentes...)
Si tu peux m'aider encore, je serais ravi.
Cordialement.

Oui, mais ces copies d'écran sont illisibles.
Dans le bas à droite de la fenêtre de compilation il y a un bouton "copier les messages d'erreur".

  • tu cliques sur le bouton en question
  • dans la fenêtre d'édition du message tu cliques sur <code> et tu fais Ctrl+v pour coller les messages entre les 2 balises.

Une librairie ne se limite pas à un fichier .h. Il y a d'autres fichiers qui doivent l'accompagner.

Bonjour,

Merci pour tes remarques. Voici ou j'en suis :

A partir du dézipage de la librairie LCD_I2C j'obtiens les 4 fichiers que j'ai logés, selon le haut de la captureTexte préformaté d'écran.Texte préformaté

L'ensemble de mes librairies utilisées couramment sont placées, selon la deuxième partie de la copie d'écran... et ça marche ainsi pour tous mes programmes de l'année 2025 (sauf encore le I2C_LCD ).

(le réglage de localisation des croquis est : « /Users/m4mat/Dropbox/Arduino_0&croquis/softs 2025+ »)

Je viens de changer la localisation des croquis dans la fonction réglage: ça change les remarques du compilateurs... Là je suis complètement largué !

Voici donc les remarques de compilation si je rentre cette nouvelle localisation dans les réglages, : « /Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling »

Je constate que le compilateur évoque des dossiers qui n'existe pas sur mon ordi !

« Using board 'nano' from platform in folder: /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6 « par exemple

remarques complètes du compilateur :

FQBN: arduino:avr:nano

Using board 'nano' from platform in folder: /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6

Using core 'arduino' from platform in folder: /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6

Detecting libraries used...

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp -o /dev/null

Alternative pour Wire.h: [Wire@1.0]

ResolveLibrary(Wire.h)

-> candidates: [Wire@1.0]

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp -o /dev/null

Alternative pour I2C_LCD.h: [I2C_LCD]

ResolveLibrary(I2C_LCD.h)

-> candidates: [I2C_LCD]

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp -o /dev/null

Alternative pour EEPROM.h: [EEPROM@2.0]

ResolveLibrary(EEPROM.h)

-> candidates: [EEPROM@2.0]

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM/src /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp -o /dev/null

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM/src /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src/Wire.cpp -o /dev/null

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM/src /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src/utility/twi.c -o /dev/null

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM/src /Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD/I2C_LCD.cpp -o /dev/null

Generating function prototypes...

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM/src /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp -o /private/var/folders/xn/4_2dhkdj0v992t6hy25zkp6c0000gn/T/2401368689/sketch_merged.cpp

/Users/m4mat/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/xn/4_2dhkdj0v992t6hy25zkp6c0000gn/T/2401368689/sketch_merged.cpp

Compilation du croquis...

/Users/m4mat/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/eightanaloginputs -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src -I/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD -I/Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM/src /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp -o /Users/m4mat/Library/Caches/arduino/sketches/66EDE9389329142400E41381FE17EE84/sketch/2pages_5.ino.cpp.o

In file included from /Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/LCD_I2C_Spark_128x64/2pages_5/2pages_5.ino:7:0:

/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/LCD_I2C_Spark_128x64/2pages_5/_1_def.h:5:9: error: redefinition of 'I2C_LCD LCD'

I2C_LCD LCD;

^~~

/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/LCD_I2C_Spark_128x64/2pages_5/2pages_5.ino:5:9: note: 'I2C_LCD LCD' previously declared here

I2C_LCD LCD;

^~~

In file included from /Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/LCD_I2C_Spark_128x64/2pages_5/2pages_5.ino:7:0:

/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/LCD_I2C_Spark_128x64/2pages_5/_1_def.h:6:9: error: redefinition of 'uint8_t I2C_LCD_ADDRESS'

uint8_t I2C_LCD_ADDRESS = 0x51; //Device address setting, default: 0x51

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

/Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/LCD_I2C_Spark_128x64/2pages_5/2pages_5.ino:6:9: note: 'uint8_t I2C_LCD_ADDRESS' previously defined here

uint8_t I2C_LCD_ADDRESS = 0x51; //Device address setting, default: 0x51

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

Utilisation de la bibliothèque Wire version 1.0 dans le dossier: /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire

Utilisation de la bibliothèque I2C_LCD prise dans le dossier: /Users/m4mat/Dropbox/Arduino_0&croquis/maquettes_tests/EcranLCD_Sparkling/libraries/I2C_LCD (héritage)

Utilisation de la bibliothèque EEPROM version 2.0 dans le dossier: /Users/m4mat/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/EEPROM

exit status 1

Compilation error: redefinition of 'I2C_LCD LCD'
Si tu peux encore m'aider, j'en serais très heureux...

Cordialement.![Capture d’écran 2025-11-01 à 16.13.26|690x379](upload://jCVljPNqyjJ0vfIzNqsKt4LJr37.png)

Bonjour,
Ne perdez plus de temps: ca marche.
J'avais une organisation de mes dossiers qui était un peu bordélique.
En tous cas vous m'avez aidé car j'ai senti qu'avec vous j'allais aboutir, donc j'ai eu le courage de chercher encore de mon côté...
Un grand MERCI.
Bien cordialement.