Problème de compilation

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

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)

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

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

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

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

Regarde dans ton répertoire de bibliothèques Arduino laquelle est la plus récente ou a été modifiée récemment.

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 !

Bonjour dbrion06

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

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....-

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

c'est trop bon, l'informatique :astonished:

Bonjour schrist

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

"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)