Go Down

Topic: Problème de compilation (Read 331 times) previous topic - next topic

schrist

Bonjour,
j'ai passé à la version 1.8.9 et je n'arrive plus à compiler mon projet.
J'obtiens ce message:
Arduino : 1.8.9 (Windows XP), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Les options de compilation ont été modifiées, tout sera recompilé
C:\Arduino\ControleNatel\ControleNatel\ControleNatel.ino: In function 'void LoadSMSZone(int)':

C:\Arduino\ControleNatel\ControleNatel\ControleNatel.ino:1114:18: warning: passing 'const String' as 'this' argument discards qualifiers [-fpermissive]

       aNumber ="";

                  ^

In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:231:0,

                 from sketch\ControleNatel.ino.cpp:1:

C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/WString.h:87:11: note:   in call to 'String& String::operator=(const char*)'

  String & operator = (const char *cstr);

           ^

C:\Arduino\ControleNatel\ControleNatel\ControleNatel.ino:1128:22: warning: passing 'const String' as 'this' argument discards qualifiers [-fpermissive]

           aNumber[j] += cValue;

                      ^

In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:231:0,

                 from sketch\ControleNatel.ino.cpp:1:

C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/WString.h:115:11: note:   in call to 'String& String::operator+=(char)'

  String & operator += (char c)   {concat(c); return (*this);}

           ^

C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino\WString.cpp: In member function '__base_ctor .constprop':

C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino\WString.cpp:82:1: internal compiler error: Segmentation fault

 }

 ^

Please submit a full bug report,

with preprocessed source if appropriate.

See <http://gcc.gnu.org/bugs.html> for instructions.

lto-wrapper.exe: fatal error: C:\Documents and Settings\sc\Local Settings\Application Data\Arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2/bin/avr-gcc returned 1 exit status

compilation terminated.

c:/documents and settings/sc/local settings/application data/arduino15/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed

collect2.exe: error: ld returned 1 exit status

exit status 1
Erreur de compilation pour la carte Arduino/Genuino Mega or Mega 2560

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

****************
Que faire ?

Merci d'avance.
Sébastien

dbrion06

Quote
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino\WString.cpp:82:1: internal compiler error: Segmentation fault
indique un problème spécifique au compilateur (ce n'est pas votre faute) qui est, à mon avis, sauf panne mémoire grave dans ma petite tête, connu depuis une quinzaine de jours (pas la peine de remplir un rapport de bug) ... et qui l'empêche de compiler une fonction de la librairie Arduino.

Une solution est de changer de version de compilateur. Pour ce faire, revenir à la version précédente -1.8.8 - est la façon la plus naturelle (le site de téléchargement d'Arduino permet de disposer de toutes les versions)

bidouilleelec

#2
Apr 17, 2019, 03:05 pm Last Edit: Apr 17, 2019, 03:05 pm by bidouilleelec
http://forum.arduino.cc/index.php?topic=608812.0

http://forum.arduino.cc/index.php?topic=608812.0

schrist

Bonjour,

Merci, c'est ce que je vais essayer de faire.
A moins que l'on sache que la correction du bug est imminente.....

A bientôt et merci encore

schrist

Bonjour,
Malheureusement, cela ne change rien.
J'ai plutôt l'impression que c'est une "librairie " AVR qui pose problème.
EN effet, ces derniers jours, l'IDE m'a proposé de mettre à jour et je l'ai fait, mais je ne sais plus le nom de cette bibliothèque.
Bonne journée.
Sébastien

lesept

Regarde dans ton répertoire de bibliothèques Arduino laquelle est la plus récente ou a été modifiée récemment.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

schrist

Il semble que le problème apparaît dans la librairie WString.....
Mais je ne comprends pas , car j'ai d'autres projets qui se compilent !

bidouilleelec

Bonjour dbrion06
indique un problème spécifique au compilateur (ce n'est pas votre faute) qui est, à mon avis, sauf panne mémoire grave dans ma petite tête, connu depuis une quinzaine de jours (pas la peine de remplir un rapport de bug) ... et qui l'empêche de compiler une fonction de la librairie Arduino.

Une solution est de changer de version de compilateur. Pour ce faire, revenir à la version précédente -1.8.8 - est la façon la plus naturelle (le site de téléchargement d'Arduino permet de disposer de toutes les versions)
Je pense que le phénomène date de version 1.8.6 et que donc il faudrait essayer avec une version 1.8.5.

Cordialement,
bidouilleelec

dbrion06

#8
Apr 18, 2019, 02:06 pm Last Edit: Apr 18, 2019, 02:14 pm by dbrion06
Quote
Je pense que le phénomène date de version 1.8.6 et que donc il faudrait essayer avec une version 1.8.5.
C'est plus abominable que ça (et ça arrive de temps en temps):
il se peut que la version 1.8.5 ne déclenche pas de bug, que la version 1.8.6 en déclenche, que la 1.8.7  (ils corrigent rapidement) et la 1.8.8 n'en déclenchent pas et que la 1.8.9 en déclenche ... la solution consiste à descendre méthodiquement les versions, l'une après l'autre. (c'était un défaut qui arrivait il y a une dizaine d'années avec gcc)....

Une autre solution consiste à faire de très légères modifs au programme incriminé, ne changeant pas son sens: il faut l'exclure si c'est un bout de code de librairie.... Une variante de cette idée est de forcer un autre mode d'affichage de g++ (afficher tous les détails est une option de l'IDE Arduino: le lien que vous donnez indiquerait que ça permettrait de cacher, **parfois***, ce type de bug)

Une autre solution consiste à ... changer de fournisseur: -privilègier le site de téléchargement d'Arduino à windows store....-


schrist

Bonjour,

Merci pour vos idées.

J'ai changé l'option de compilation : Afficher les résultats détaillés pendant la compilation....
Et le projet s'est compilé.
J'ai à nouveau retiré l'option et cela a de nouveau passé.

Je n'ai pas tout compris, mais ça fonctionne

biggil

c'est trop bon, l'informatique :smiley-eek:

bidouilleelec

Bonjour schrist
.....
J'ai changé l'option de compilation : Afficher les résultats détaillés pendant la compilation....
Et le projet s'est compilé.
J'ai à nouveau retiré l'option et cela a de nouveau passé.

Je n'ai pas tout compris, mais ça fonctionne
Je ne crois plus en la magie en matière d'informatique.
Vous avez sûrement modifié quelque chose soit dans votre programme soit dans l'IDE.
Il serait utile pour tous que vous le précisiez.

Cordialement,
bidouilleelec

dbrion06

"J'ai changé l'option de compilation : Afficher les résultats détaillés pendant la compilation....
Et le projet s'est compilé.
J'ai à nouveau retiré l'option et cela a de nouveau passé."
Est ce que ces manipulations ont eu lieu pendant la même session?
(si c'est le cas, il me semble probable -afficher les messages d'erreurs n'affecte pas le code généré- que le code généré pour les fichiers dépendants de WString.h -une librairie système- n'aient pas eu besoin d'être recompilés, donc n'aient pas été recompilés et que la bug soit bien cachée (mais prête à refaire des farces au démarrage de l'IDE... qui nettoye les résultats de la compilation).
Pourquoi ne pas garder cette option d'affichage détaillé de la phase de compilation? (si ça marche, pas besoin de lire le détail, fastidieux, j'en convient;
 si ça ne marche pas, on est suffisamment ennuyé, frustré, que dis je , traumatisé pour oubler d'activer cette option qui permet de chasser tranquillement les horreurs)


Go Up