Ошибка компиляции
- Войдите на сайт для отправки комментариев
Компилирую скетч из примеров к библиотеке 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 не было вот и ругался он, добавил функцию и все ок, теперь надо смотреть как на дисплее все отобразит