Ошибка при компиляции скетча "collect2.exe: error: ld returned 1 exit status"
- Войдите на сайт для отправки комментариев
Чт, 08/09/2016 - 14:13
Образовалась одна проблема:
Если в коде использовать процедуру Tin();, то возникает ошибка:
C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s: Assembler messages: C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:157: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:196: Error: unknown opcode `delay1' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:198: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:201: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:204: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:207: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:210: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:213: Error: unknown opcode `delay1' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:218: Error: unknown opcode `delay1' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:221: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:254: Error: unknown opcode `svprt' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:258: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:262: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:263: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:265: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:266: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:268: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:269: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:271: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:272: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:274: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:275: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:277: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:278: Error: unknown opcode `delay1' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:281: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:283: Error: unknown opcode `delay1' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:285: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:286: Error: unknown opcode `svprt' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:288: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:320: Error: unknown opcode `svprt' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:324: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:327: Error: unknown opcode `delay1' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:329: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:330: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:332: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:333: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:335: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:336: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:338: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:339: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:341: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:342: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:344: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:345: Error: unknown opcode `delay3' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:347: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:350: Error: unknown opcode `delay2' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:352: Error: unknown opcode `o1bs' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:353: Error: unknown opcode `svprt' C:\Users\FDE7~1\AppData\Local\Temp\ccYndXXD.s:355: Error: unknown opcode `o1bs' lto-wrapper: C:\Users\Миха\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.3-arduino2/bin/avr-gcc returned 1 exit status c:/users/миха/appdata/local/arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.3-arduino2/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: lto-wrapper failed collect2.exe: error: ld returned 1 exit status exit status 1 Ошибка компиляции.
Если же закомментить вызов данной процедуры, то все нормально компилируется.
arduino uno(CH340G), Ide 1.6.7, Win 10
#include <SoftwareSerial.h> #include <TVout.h> #include <fontALL.h> SoftwareSerial mySerial(10, 11); // RX, TX TVout TV; /* struct weather_structure { const char* descript; float temp; float pressureHPA; float pressureMMHG; byte humidity; float speed; float deg; }; */ //weather_structure weather; String weather[7]; String Data; char DataChar; bool DataBool = false; bool writer = false; void Tin() { /* Data = weather[i]; for (int z = 0; z < Data.length(); z++) TV.print(Data[z]); */ } void writeData() { if (writer == false) { Serial.println(Data); writer = true; TV.clear_screen(); Serial.println("Weather"); TV.select_font(font8x8); TV.println("Weather"); TV.select_font(font4x6); TV.delay(2000); TV.clear_screen(); Serial.print("description: "); Serial.println(weather[0]); TV.print("description: "); Tin();//ТОТ САМЫЙ ВЫЗОВ TV.println(); Serial.print("temp: "); Serial.print(weather[1]); Serial.println(" celsius"); TV.print("temp: "); //TVprint(1); TV.println(" celsius"); Serial.print("humidity: "); Serial.println(weather[2]); TV.print("humidity: "); //TVprintln(weather[2]); Serial.print("pressure: "); Serial.print(weather[3]); Serial.print(" hPa or "); Serial.print(weather[4]); Serial.println(" mmHg"); TV.print("pressure: "); //TVprint(weather[3]); TV.print(" hPa or "); //TVprint(weather[4]); TV.println(" mmHg"); Serial.print("wind's speed: "); Serial.print(weather[5]); Serial.println(" kmph"); TV.print("wind's speed: "); //TVprint(weather[5]); TV.println(" kmph"); Serial.print("wind's direction: "); Serial.print(weather[6]); Serial.println(" degrees"); TV.print("wind's direction: "); //TVprint(weather[6]); TV.println(" degrees"); } } void setup() { // Open serial communications and wait for port to open: delay(1000); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // set the data rate for the SoftwareSerial port mySerial.begin(9600); TV.begin(NTSC, 120, 96); TV.select_font(font8x8); TV.println("Weather Loading"); TV.select_font(font4x6); } void loop() { // run over and over if (mySerial.available()) { while (DataChar != '#') { DataChar = (char)mySerial.read(); if (DataBool == true) Data = Data + DataChar; else if (DataChar == '!') DataBool = true; } int j = 2; for (int i = 0; i < 7; i++) { while (Data[j] != '&') { weather[i] = weather[i] + Data[j]; j++; } j++; } writeData(); } }
Программа получает инфу с esp через softSerial, разбирает её и должна вывести на монитор
строка 31 , откуда берется номер элемента в массиве "i" ?
Он должен был приниматься как в строке 63
в строке 63 "1" а там "i"
прост надо поменять для этого Tin() на Tin(int i), хотя какая разница, это все комментарии, они и так не используются, можно считать, что Tin выглядит так: Tin(){}
Проблема в том, что если закомментить строку 55, то компилится, а если не комментить, то вылетает ошибка
прост надо поменять для этого Tin() на Tin(int i), хотя какая разница, это все комментарии, они и так не используются, можно считать, что Tin выглядит так: Tin(){}
а что тогда от нас надо, если вам не нужна эта функция, закоменьте ее
Tin() и Tin(int i) разные функции
А строки 31 и 63 закомментированы, их не видит компилятор, а функция мне нужна, просто ошибка возникает независимо от того, что функция принимает и чем она наполнена
Только что создал новую процедуру func1 и, закомментив Tin(), вызвал ее из loop(). Результат - та же ошибка.
тогда так
Это и без тебя ясно. программа крашится при хотя бы одном использовании процедуры Tin()
меняй версию IDE на более старую, может библиотеки совсем устаревшие
При чем тут библиотеки? Если даже при пустой функции крашится
значит удаляй временные файлы IDE, проверь версию Java если установлена
Проблема возникает только в этой программе. Другие нормально работают. Я думаю тут какой-то конфликт
Уже обсуждалось
http://arduino.ru/forum/programmirovanie/oshibka-kompilyatsii-2
Тут разные коды ошибок:
у меня: collect2.exe: error: ld returned 1 exit status
у них: collect2.exe: error: ld returned 5 exit status
К тому же у меня примеры работают нормально
Попробуйте заменить ld.exe, как там советуют.
Я взял arduino 105. Теперь все компилируется, но на тв не выводится
PS: в ардуино 1.6.11 тоже не работает
у меня такая же проблема,
это библиотеки конфликтуют, решить ее можно лишь исправив билиотеку (скачать от другого производителя)
Потверждаю. Имел конфликт #include <TVout.h> и #include <mcp_can.h>.
Решил отключением #include <TVout.h> (за не очень большой нуждой))