Soucis avec les bibliothèques

Bonjour

J'ai un soucis avec les bibliothèques.

L'environnement.
Je suis sur ide 2.3.6 sous Windows11, je travaille sur 2 pc et mes croquis sont sur onedrive.

Exemple de soucis.

La ligne

#include <AsyncTCP.h>

Le compilateur me dit
C\Users\borom\OneDrive\Documents\Arduino\2025\Reception_Linky_ESP32_2025_03\Reception_Linky_ESP32_2025_03.ino:9:10: fatal error: AsyncTCP.h: No such file or directory

Je comprend bien qu'il ne trouve pas la bibliothèque en question.

Mais pourquoi dans un autre sketch, il va chercher la bibliothèque dans

C:\Users\borom\AppData\Local\Arduino15\packages\esp32\tools\......

et là, pas de soucis?.

La ligne qui donne l'erreur ne serait pas comme ci-dessous plutôt?

#include "AsyncTCP.h"

Non c'est bien

#include <AsyncTCP.h>

Comme dans les autres programmes.
C'est quoi la différence?
Et pourquoi ça va bien dans les autres sketchs?
Je cherche a comprendre

L'erreur est liée à la compilation de n'importe quel programme sur un PC particulier ou un programme particulier sur n'importe quel PC?

Ta bibliothèque est-elle bien întallée sur le pc ou tu essayes le sketch?

Sur n'importe quel PC

J'ai essayé avec les guillemets, et ça fonctionne.
et j'ai refait avec

#include <AsyncTCP.h>

et maintenant c'est bon
Je suis perdu.

Oui, elle est bien installée

Tu as déclenché manuellement la réparation en changeant " " puis revenant à < >.

Problème résolu. :sweat_smile:

Du coup c'est mieux de mettre avec les guillemets ou < >?

Il me semble que l'on a déjà eu des personnes qui avaient des problèmes en travaillant avec des fichiers dans le cloud. Cela peut être lié a une synchro en cours au moment où tu lances la compilation, par exemple.

L'essentiel c'est que ça fonctionne.
J'ai l'impression que c'est arrivé avec la dernière version de l'ide.
Déjà qu'a chaque maj de cartes espressif c'est la galère avec les bibs.

Merci a vous

De rien :slight_smile:

Oui il y a pas mal de problèmes et de bugs avec la nouvelle version de l'ide.

Et les mise à jours d'expressif rend pas mal de codes plus anciens încompatible sans modification.

L’Idéal serait que chaque projet embarque ses bibliothèques, et quelles
ne soient pas impactées lors des maj.
Ça m'étonne que cela n'est pas été envisagé.

En fait, les chevrons indiquent qu'il faut chercher dans le dossier /include que le compilateur saura trouver tout seul. Les guillemets, c'est pour tes fichiers d'entête perso relatifs à ton projet. Souvent, il seront placés dans ton répertoire de travail (soit par l'IDE, soit par le programmeur lui-même), donc si on admet que le code ci-dessous soit dans un repértoire a, alors le fichier mes_prototypes.h y est aussi.

#include <iostream> 
#include "mes_prototypes.h" 
/* code */

Mais on peut bien-sûr spécifier un sous-repértoire

#include <iostream>
#include "./dossier/mes_prototypes.h"
/* code */

Souvent, les fichiers d'entête des bibliothèques sont à mettre entre chevrons car ils se trouvent dans le dossier /include du compilateur (bien-sûr, il y a des exceptions à tout)

Copié collé de la réponse ici que je trouve plutôt claire

Je le fais manuellement pour mes gros projet. Ce serait super utile si on pouvait exporter les bibliothèques automatiquement en enregistrant notre projet!

Merci de toutes vos informations pertinentes.
Cela m'évitera de criser la prochaine fois.

Bonne journée a vous tous