Ошибка компиляции
- Войдите на сайт для отправки комментариев
Компилирую скетч из примеров к библиотеке LiquidCrystal_I2C.
//DFRobot.com //Compatible with the Arduino IDE 1.0 //Library version:1.1 #include <Wire.h> #include <LiquidCrystal_I2C.h> #if defined(ARDUINO) && ARDUINO >= 100 #define printByte(args) write(args); #else #define printByte(args) print(args,BYTE); #endif uint8_t bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; uint8_t note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; uint8_t clocK[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; uint8_t duck[8] = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0}; uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0}; uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0}; uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4}; LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { lcd.init(); // initialize the lcd lcd.backlight(); lcd.createChar(0, bell); lcd.createChar(1, note); lcd.createChar(2, clocK); lcd.createChar(3, heart); lcd.createChar(4, duck); lcd.createChar(5, check); lcd.createChar(6, cross); lcd.createChar(7, retarrow); lcd.home(); lcd.print("Hello world..."); lcd.setCursor(0, 1); lcd.print(" i "); lcd.printByte(3); lcd.print(" arduinos!"); delay(5000); displayKeyCodes(); } // display all keycodes void displayKeyCodes(void) { uint8_t i = 0; while (1) { lcd.clear(); lcd.print("Codes 0x"); lcd.print(i, HEX); lcd.print("-0x"); lcd.print(i+16, HEX); lcd.setCursor(0, 1); for (int j=0; j<16; j++) { lcd.printByte(i+j); } i+=16; delay(4000); } } void loop() { }
Компилятор мне вот что пишет.
"Arduino: 1.6.5 (Windows XP), Плата"Arduino Uno" Используем библиотеку Wire в папке: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire Используем библиотеку LiquidCrystal_I2C в папке: C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\LiquidCrystal_I2C (legacy)
*
*
*
C:\Program Files\Arduino\hardware\tools\avr/bin/avr-gcc -w -Os -Wl,--gc-sections -mmcu=atmega328p -o C:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp/CustomChars.cpp.elf C:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp\CustomChars.cpp.o C:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp\Wire\Wire.cpp.o C:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp\Wire\utility\twi.c.o C:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp.o C:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp/core.a -LC:\DOCUME~1\Admin\LOCALS~1\Temp\build7989869042181060496.tmp -lm
collect2.exe: error: ld returned 5 exit status Ошибка компиляции."
И сама винда ругается вот так:
Что делать не понятно.
ld.exe умирает на любом скетче, или только на этом ?
не только на этом, но и не на всех
бывает что одну строку добавляю и ошибка вылазит
Может стоит IDE переустановить.
Может стоит IDE переустановить.
Может стоит IDE переустановить.
Это самый простой способ. Скачайте архив без инстолятора, тогда и устанавливать не надо.....
у меня есть скаченный архив, просто переписать на прежнее место?
у меня есть скаченный архив, просто переписать на прежнее место?
В любое другое. Если Ваш арзив это не архив инстолятора, а Windows ZIP file for non admin install
Насколько мне известно, проблема возникает только в WinXP, а потому в русскоязычном сегменте И-нета практически неизвестна.
Токально можно обойти ошибку, если добавлять в код ненужные переменные. Может потребоваться более десятка. На размер занимаемой памяти это не повлияет, т.к. оптимизатор их все равно удалит.
Более глобальный способ борьбы - скачать старую версию среды (1.0.?) и взять ld.exe оттуда.
Насколько мне известно, проблема возникает только в WinXP, а потому в русскоязычном сегменте И-нета практически неизвестна.
Токально можно обойти ошибку, если добавлять в код ненужные переменные. Может потребоваться более десятка. На размер занимаемой памяти это не повлияет, т.к. оптимизатор их все равно удалит.
Более глобальный способ борьбы - скачать старую версию среды (1.0.?) и взять ld.exe оттуда.
Ладно, буду пробовать.
А с http://www.arduino.org/ не пробовали запускать?
А с http://www.arduino.org/ не пробовали запускать?
Попробуйте запустить. Да, ИДЕ
Вообщем взял из архива ld.exe и скопировал в папку с компилятором, все заработало. Спасибо коллеги!
Если windows XP то советую работать с IDE Arduino 1.8.3 / 1.8.4 Nightly другие версии IDE на windows XP иногда глючат, причем на ровном месте. Выдают ошибку "collect2.exe: error: ld returned 5 exit status"
DVAL, а вы на дату предыдущего поста обратили внимание? :)
Если windows XP то советую работать с IDE Arduino 1.8.3 / 1.8.4 Nightly другие версии IDE на windows XP иногда глючат, причем на ровном месте. Выдают ошибку "collect2.exe: error: ld returned 5 exit status"
У меня на Windows XP прекрасно работают Arduino IDE: 1.0.5, 1.6.5, 1.6.12. Работали и другие версии, но удалил их за ненадобностью.
У меня с тех пор все отлично работает на ХР)
IDE Arduino 1.8.3 / 1.8.4 Nightly
Ни в коем случае не советую ночные сборки (Nightly), только релизные.
При чем тут дата? Я же сюда попал в поисках своей проблемы и раньше эту ветку просматривал. Возможно и еще кто попадет у кого подобные траблы. Описал способ который мне помог. Возможно поможет еще кому то. Хотя от XP даже мелкософт отказался, но не на всем железе семерки и десятки адекватно работают. А железо то еще вполне рабочее.... Для программирования ардуинки
Я новичок в этом деле, и столкнулся с этой же проблемой, ковырял два дня с перерывами. Виндос ХР sp3, оказалось все просто! В установленной FLprog-3.0.2 впапке ideV2 открыл свойства файлов arduino и arduino_debug на вкладке совместимость выбрал режим совместимости Windows 98/Windows Me и чудо свершилось. Чего и вам желаю.
Не нужно ничего переустанавливать или заменять ld.exe - дело вовсе не в этом.
Эта ошибка связана с чем-то другим. Она может исчезнуть от внесенных изменений, а может появиться снова с только что абсолютно рабочей программой. Причины могут быть разные, например лишние временные файлы в системной папке Temp... или нехватка виртуальной памяти.
Память не может быть "read". - да, она такая ...
Сделал как тут (в конце страницы) - всё заработало.
https://frompinskto.wordpress.com/2016/01/14/arduino-%D0%BE%D1%88%D0%B8%...
Всем добрый вечер, компилирую скетч и выдает такую ошибку как быть???
4 и 6 строки - а что в ccu5Xidr делает main()? Если Вы использовали его как имя функции, то настоятельно советую поменять.
4 и 6 строки - а что в ccu5Xidr делает main()? Если Вы использовали его как имя функции, то настоятельно советую поменять.
нет я его не применял не где, функции loop не было вот и ругался он, добавил функцию и все ок, теперь надо смотреть как на дисплее все отобразит