Problème de compilation platformio vscode

Bonjour tous le monde,
Actuellement en stage, on m'a demandé de réaliser un code sur PlatformIO avec vscode mais j'ai un problème, lors que je lance le build du code j'ai une erreur récurrente. Alors que le code à pour but de faire clignoter une led.
J'ai essayer différentes choses comme relancer vs, tous désinstaller et réinstaller ainsi que les extensions.
en espérant que vous pourrez m'aider
voici le code :

#include <Arduino.h>
#define LED 2

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, LOW);
  delay(500);

  digitalWrite(LED, HIGH);
  delay(500);
}

voici le message d'erreur :

collect2.exe: fatal error: CreateProcess: No such file or directory
compilation terminated.
*** [.pio\build\esp32dev\firmware.elf] Error 1
========================================= [FAILED] Took 4.40 seconds =========================================

cordialement letesego

Il faut aussi le contenu du fichier platformio.ini

C’est quoi collect2.exe ?
Pour info exe = windaube et windaube je ne connais plus depuis 20 ans, je suis resté a XP.

bien sur voici le platformio.ini
et je ne sais pas à quoi correspond le collecteur2.exe
platformio.ini :

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200

Merci,
Je voulais voir s'il n'y avait pas des dépendances de bibliothèques qui trainaient.

Si cela avait été le cas tu aurais eu des lignes "lib_deps" équivalentes à :

lib_deps = 
	paulstoffregen/OneWire@^2.3.8
	milesburton/DallasTemperature@^4.0.4
	adafruit/Adafruit SSD1306@^2.5.13
	adafruit/Adafruit GFX Library@^1.11.11

Peut-être une piste :
Avec l'IDE Arduino tu ne peux avoir qu'un dossier de travail à la fois.
Avec l'IDE platformIO tu peux en avoir plusieurs dans "l'espace de travail".

Je n'ai jamais approfondi, mais si dans l'espace de travail, j'ai des dossiers avec différents microcontrôleurs, je me fais engueuler par le logiciel.
J'évite de laisser des anciens projets dans l'espace de travail.
Les retirer de l'espace de travail ne les efface pas sur le disque.

Est-ce ton cas ?

Je pense que tu as raison car il m'est arriver de lancer plusieurs projet et actuellement je n'ai que se projet dans mon espace de travail.
Si j'ai bien compris le logiciel les gardes dans l'espace stockage et il n'aime pas trop ça.
Comment faire alors pour les retirer de l'espace disque ?
Cordialement letesego

Ce ne sont que des suppositions mais l'IDE doit avoir du mal à gérer
le compilateur pour différentes platforme simultanément.

Note tu écris :

Tu ne devrais pas avoir ce problème alors !

Sinon :

On ne s'est pas compris.
Les fichiers ne sont pas physiquement dans un dossier qui s'appelle "Espace de travail", ils sont et restent là où tu les as enregistrés.
Si tu veux les effacer, ils sont là où tu les as enregistrés.

Quand tu sors des dossiers de l'espace de travail tu ne fais que détruire un lien symbolique.
Privé de ce lien symbolique PIO ne connait plus ces dossiers.
C'est réversible, si tu fait "Ajouter à l'espace de travail" tu recrées instantanément le lien symbolique.

Marche à suivre :
Attention en plus d'être sous linux je suis "gaucho" et j'utilise une souris configurée en mode "gaucho".
Je ne parlerai que de clic Majeur ou Index qui sont vrais que l'on soit normal (gaucher) ou anormal (droitier).
Donc clic Majeur dans l'explorateur de fichier

et y plus qu'a.

Je te remercie pour le raccourcie mais cela n'a pas résolu mon problème. J'ai toujours le même message d'erreur

C'est clair : Il ne trouve pas le fichier collect2.exe

Je viens de faire une recherche sur mon PC linux Debian 12, avec le nom de fichier "collect2"
→ bien évidement il n'y a pas d'extension, contrairement à Windows, Linux n'en a pas besoin pour savoir à quoi correspond le fichier.

J'ai trouvé un fichier "collect2" qui est un fichier système (propriétaire root) sous :
/usr/lib/gcc/x86_64/linux-gnu/12/collect2

Taille 624 kio

C'est un fichier exécutable qui est visiblement en rapport avec GCC.
C'est donc normal que PIO le cherche.

Ma conclusion :
C'est un problème de mauvaise installation de GCC .
C'est donc un problème de windaube.

oui, c'est un outil de gcc, par contre je ne suis pas sûre que ce soit spécialement un problème Windows.
Mais bon les utilisateurs de Linfernux, on souvent du mal à comprendre la simplicité d'utilisation de Windows :slight_smile:

Chez moi le fichier ce trouve a différent endroit dan s AppData\Local\Arduino15\packages\arduino\tools

C'est presque du second degré, tu sais que je vanne.

Si je rectifie en disant :
"C'est un problème dans l'installation d'un programme dans le système d'exploitation Windows".
Est-ce mieux ? :grinning:

Ce qui ne change pas, c'est qu'en ce qui me concerne Windows cela n'a été que jusqu'à XP et que je ne suis pas compétant pour donner des instructions de dépannage dans les versions actuelles.

La suite dans le bar.

1 Like

lors que je suis le même chemin d'accès je ne trouve pas le fichier collect2.exe dans le dossier tool vous n'auriez pas une méthode simple pour l'implémenter dans se fichier. Sachant que c'est un pc d'entreprise donc je voudrais éviter de faire des bêtises dessus :sweat_smile:

Tu commences par signaler le problème au responsable des PC.

A ce que je sais il n’existe pas de version native sous windows de Gcc.
A la place il existe mingw, c’est ce programme qui semble mal installé.

L’ide arduino ”arrive” avec tout ce dont elle a besoin, il ”se peut” que la source du defaut soit dans son installation.
J’ai bien écrit ”il se peut”.

Refaire une installation propre de l’ide est une possibilité.
Effacer au besoin le fichier arduino15 (ou equivalent sous windows).

Bonjour,
Ce message ne veut pas dire qu'il y a une erreur du fichier collect2 mais que collect2 ne peut pas créer le fichier qu'il doit créer. La première cause peut être le fichier projet mal enregistré, rejeté par l'antivirus par exemple.
Cordialement

Tu es sûre, car j'ai pensé comme toi au début, mais le message d'erreur est bizarre avec le chainage des messages.

Surtout si il ne trouve pas GCC sur son disque

Non je ne suis pas sur à 100%. Le message est create process no such file
pas collect2.exe no such file ce qui laisse penser qu'il opère bien l'exécutable mais que celui ci ne peut pas aboutir. La principale raison pour que le linker ne puisse pas aboutir c'est que le projet ne soit pas enregistré ou que le fichier est trop gros et je vois difficilement un problème avec un si petit fichier sauf si un autre projet est toujours en cours ce que @68tjs a déjà signalé

le problème est que le projet est belle et bien enregistrer dans mon pc et que je n'est pas d'autre projet dans mon workspace.
je ne sais plus se que je peux faire :expressionless:
si vous avez d'autre idée n'hésité pas

Il est bien en local par sur un répertoire réseau, par exemple?

Je ne connais pas arduino je ne peux pas être précis. C'est un cas que j'ai déjà vu plusieurs fois sur Qt et je n'ai jamais constaté de problème lié à l'installation du compilateur. Ce qui semble sur, est que le linker n'arrive pas à établir le fichier qui sert à faire la compilation. Commence par faire un clean avant de compiler, ce fichier est affiché dans le terminal sur vscode il doit exister un mode qui permet de le faire sur Arduino. Pour rejoindre @fdufnews le chemin utilisé est également affiché dans le terminal
Edit: je viens de voir en entreprise.
En entreprise les dossiers de travail des IDE sont souvent "surveillés" car les .exe et .elf font peur à l'ingénieur réseau, il faut le consulter.

Peut-être une indication utile .

J'ai du réinstaller PlatformIO à la suite d'un essais.

Le cadre :
Espressif a sorti une version 3 de son framework "Arduino-Espressif"
Espressif à fait le travail d'adaptation V2 → V3 sur Ide Arduino (normal il vend des puces à Arduino SA).
Espressif veut que le même travail soit fait par PlatformIO et Plateform OI dit que c'est celui qui vend les puces qui doit le faire.

Une adaptation, externe à PIO et Espressif, a été réalisée : "pioarduinoIDE".
Cette "adaptation" entre en conflit et ne trouve pas certains composants : refus de compilation.

N'y aurait-il pas un problème du même genre ?
Qu'est-ce qui a été fait sur ce PC ?

J'ai résolu le défaut en supprimant le fichier de configuration :
vscode
platformio

oui sur le disque