Durée de compilation excessive ?

rebonsoir,

j'ai toujours trouvé la compilation des codes très longues mais là ça me semble délirant. Je suppose qu'il y a un problème dans mon installation. Le simple code posté l'autre jours (je peux le remettre avec les deux tout petits fichiers supplémentaire si besoin) mets plus de 7 minutes pour compiler.

J'ai l'impression que toutes les librairies utilisées sont recompilées à chaque fois alors que je n'y ai abolument pas touchées.

J'ai à chaque fois une multitude de lignes du type :

/home/christian/.arduino15/packages/esp32/tools/esp-x32/2511/bin/xtensa-esp32-elf-g++ -MMD -c @/home/christian/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-9bb7aa84-v2/esp32/flags/cpp_flags -w -Os -Werror=return-type -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_WROOM_DA -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_WROOM_DA\"" "-DARDUINO_VARIANT=\"esp32da\"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS=\"linux\"" "-DARDUINO_FQBN=\"esp32:esp32:esp32da:UploadSpeed=921600,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,LoopCore=1,EventsCore=1,EraseFlash=none\"" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_CDC_ON_BOOT=0 @/home/christian/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-9bb7aa84-v2/esp32/flags/defines -I/home/christian/Arduino/lumi_temp3 -iprefix /home/christian/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-9bb7aa84-v2/esp32/include/ @/home/christian/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-9bb7aa84-v2/esp32/flags/includes -I/home/christian/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-9bb7aa84-v2/esp32/qio_qspi/include -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/cores/esp32 -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/variants/esp32da -I/home/christian/Arduino/libraries/ESP_Async_WebServer/src -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/FS/src -I/home/christian/Arduino/libraries/Async_TCP/src -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/WiFi/src -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/Network/src -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/LittleFS/src -I/home/christian/Arduino/libraries/ElegantOTA/src -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/Update/src -I/home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/Hash/src @/tmp/arduino/sketches/5AB216A3303867A3213C64C99585A305/build_opt.h @/tmp/arduino/sketches/5AB216A3303867A3213C64C99585A305/file_opts /home/christian/.arduino15/packages/esp32/hardware/esp32/3.3.5/libraries/WiFi/src/AP.cpp -o /tmp/arduino/sketches/5AB216A3303867A3213C64C99585A305/libraries/WiFi/AP.cpp.o

Je suppose que ce n'est pas tout à fait normal :frowning:

Comment accélérer et optimiser ça ?

portable lenovo ideapad pas extraordinairement puissant mais pas ridicule quand même : Processeur AMD Ryzen 3, 8 Go de ram, linux debian 12, ide arduino 2.2.1 (ok pas à jour)

commencez par ça :) - et mettez à jour le core ESP32 via le gestionnaire de cartes.

Il me semble avoir lu quelque part que les dernières versions ont amélioré le cache des builds et la compilation incrémentale dans les versions récentes.

si vous repostez tout le code, je peux tester pour voir combien de temps ça prend sur mon Mac.

La première compilation est souvent assez longue car toutes les librairies utilisées sont recompilées.
Le résultat de cette compilation est conservée dans le répertoire /temp et ensuite seuls les fichiers modifiés sont recompilés. Dans ton cas ils devraient être là /tmp/arduino/sketches/5AB216A3303867A3213C64C99585A305/ le hash code 5AB2... est lié au projet donc tu peux avoir plusieurs répertoires dans ce genre si tu travailles sur plusieurs projets à la fois.

A noter si ton OS purge /temp en fin de session évidemment la prochaine fois que tu lances ce projets tu recompiles tout de nouveau

l'appimage 2.3.7 ne se lance pas. Ou plutôt la fenètre s'affiche, le logo clignote mais rien de plus. Lancé dupuis une console, celle-ci se remplis de milliers de lignes d'erreurs :frowning:

Ça c'était à jour...

Ça je veux bien, mais le problème est que justement, sans fermer ma session toutes les librairies sont recompilées à chaque fois, même quand il n'y a qu'une modification mineure du code (ou même d'un commentaire) qui ne concerne pas ces librairies.

Je le zippe de suite...
lumi_temp3.zip (2,5 Ko)

Merci à tous les deux pour votre aide

Bonsoir,

Peut-être un problème de date/heure des productions de ces librairies

A suivre...

J'ai par exemple /tmp/arduino/sketches/5AB216A3303867A3213C64C99585A305/libraries/ESP_Async_WebServer qui s'est rempli de fichiers .d et .o et pareil pour les autres bibliothèques utilisées mais les fichiers de la compilation précédente (hier - je n'ai pas redémarré l'ordi) sont présents, avec des dates et heures correctes

là je viens de lancer une deuxième compilation sans rien modifier au projet.

Je vois passer des lignes du type

Utilisation du fichier déjà compilé: /tmp/arduino/sketches/5AB216A3303867A3213C64C99585A305/libraries/LittleFS/LittleFS.cpp.o et c'est effectivement plus rapide

Je recommence avec une modification mineure, ça semble toujours ok avec l'utilsiation des fichirs déjà compilés.

Donc je ne ne comprend pas mon problème de hier.

Désolé pour le bruit

Ok - bizarre