Странная ошибка компилятора (ошибка сегментации)
Вы получаете ошибку компилятора. Это происходит в странных частях кода, которые на самом деле не должны вызывать проблем. Ошибка выглядит примерно так:
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp:203: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:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avr-gcc returned 1 exit status
compilation terminated.
c:/program files/windowsapps/arduinollc.arduinoide_1.8.15.0_x86__mdqgnx93n4wtt/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed
collect2.exe: error: ld returned 1 exit status
Что это такое и как это исправить?
@Majenko, 👍0
Обсуждение4 ответа
Это известная ошибка компилятора в Windows. Раздражает то, что эта версия компилятора включена в версию Arduino IDE для Windows Store.
Он также пробрался в версию IDE для Windows версии 1.8.6 с веб-сайта Arduino.cc вместе с интегрированной версией ядра Arduino AVR.
Существует множество проблем Github, открытых для этой проблемы, и навигация по запутанной сети из них немного утомительна, но эта кажется наиболее многообещающей для поиска основной причины:
- AVR core 1.6.22 (IDE 1.8.6) аварийно завершает работу компилятора avr-gcc (5.4.0), когда F () строка присваивается статической переменной
Самое простое решение — понизить версию вашего компилятора до версии 4.9.2. Это можно сделать, используя диспетчер плат для установки версии 1.6.21 плат Arduino AVR. Это должно дать вам версию компилятора 4.9.2-atmel3.5.4-arduino2
, которая не страдает от этой проблемы.
Это центральный отчет об этой проблеме: https://github.com/arduino/Arduino/issues/7949, @per1234
и НЕ нажимайте кнопку «Обновить» до нажатия «Закрыть» !!, @Stoica Mircea
Работает как шарм, спасибо. Если бы это была проблема с Arduino/Genuino Micro с библиотекой IRremote., @Codebeat
В последнее время такая ошибка возникает время от времени без видимой причины. Что устранило это для меня, так это войти в настройки IDE и изменить вывод компилятора на подробный, а также показать все предупреждения. Что??? Я знаю, что это безумие. Я просто пытался получить больше информации об ошибке, но с тех пор я ее не получил. А раньше я его много получал.
Работал и для меня. Спасибо, @Jak
Иногда мне кажется, что мне нужно перезагрузить компьютер, так как выход из Arduino и повторный запуск не всегда позволяют мне снова скомпилировать.
"изменение вывода компилятора на подробный, а также отображение всех предупреждений"
Это сработало и для меня.
Я снова вернул настройки в состояние по умолчанию после перезапуска и компиляции. Это сработало. Не знаете, что под этим?
- "avrdude: stk500_getsync(): not in sync: resp=0x00", или некто по имени Avr не позволяет мне загрузить мою программу
- Ошибка: expected unqualified-id before 'if'
- Ошибка компиляции кода для Arduino/Genuino Uno
- Ошибка : заблудиться '\' в программе
- Ошибка: invalid application of 'sizeof' to incomplete type 'int []' при попытке вычислить размер массива в библиотеке
- Недопустимое преобразование из 'char' в 'const char*' [-fpermissive] в строке
- Ошибка компиляции в nodeMCU вместе с датчиком температуры oneWire ds18b20 и ЖК-дисплеем 2x16 (не I2C)
- Ошибка компиляции: "cannot declare 'client' to be of abstract type 'Client'"
Перезапуск Arduino IDE может помочь., @user_fs10