Skocz do zawartości

Problem przy kompilacji: collect2.exe: error: ld returned 5 exit status


Pomocna odpowiedź

Napisano

Witam Kolegów.

Arduino 1.8.1 (było też na 1.6.12)

System: XP sp3

Mam prosty projekt który ma na celu mierzyć temperaturę NTC podpiętego do A0 i wysiedlać wynik na LCD.

Ma tez pokazywać jej wartość minimalną i maksymalną.

Zrobiłem pomiar i wyświetlanie temperatury i wszystko działało poprawnie.

Kompilator zgłaszał że wszystko jest dobrze:

Szkic używa 3902 bajtów (12%) pamięci programu. Maksimum to 30720 bajtów.

Zmienne globalne używają 101 bajtów (4%) pamięci dynamicznej, pozostawiając 1947 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.

Gdy zacząłem dopisywać kolejne zmienne kompilator zaczął głupieć i nie mam już pomysłu co może być tego powodem. Dopisanie jakiekolwiek linii powoduje wywalenie błędu przy kompilacji:

collect2.exe: error: ld returned 5 exit status

exit status 1

Błąd kompilacji dla płytki Arduino Nano.

Jestem początkujący i może błąd jest jakiś prosty. Ale nie mam pomysłu skąd i dlaczego on się pojawia 🙁

#include <LiquidCrystal.h> //Dołączenie bilbioteki
#include <math.h>

LiquidCrystal lcd(7, 6, 2, 3, 4, 5); //Informacja o podłączeniu nowego wyświetlacza (RS), (Enable), (D4), (D5), (D6), (D7)

double TempNTC;
word Temp;
word Tmin=24;
word Tmax=24;
//word Td=0;

void setup() {
lcd.begin(16, 2); //Deklaracja typu
lcd.setCursor(0, 0); //Ustawienie kursora
lcd.print("    Termomet"); //Wyświetlenie tekstu
lcd.setCursor(0, 1); //Ustawienie kursora
lcd.print("   do Zelazek"); //Wyświetlenie tekstu
delay(3000); //Odczekanie 1 sekundy
lcd.clear();
lcd.begin(16, 2); //Deklaracja typu
lcd.setCursor(0, 0); //Ustawienie kursora
lcd.print("   Serwis"); //Wyświetlenie tekstu
lcd.setCursor(0, 1); //Ustawienie kursora
lcd.print("     V0.01"); //Wyświetlenie tekstu
delay(3000); //Odczekanie 1 sekundy
lcd.clear();
}

double Thermister(int RawADC) {

// See http://en.wikipedia.org/wiki/Thermistor for explanation of formula
TempNTC = log(((10240000 / RawADC) - 10000));
TempNTC = 1 / (0.001129148 + (0.000234125 * TempNTC) + (0.0000000876741 * TempNTC * TempNTC * TempNTC));
TempNTC = TempNTC - 273.15;           // Convert Kelvin to Celcius
return TempNTC;
}



void loop() {
lcd.clear();
Temp = Thermister(analogRead(0));  // Read sensor

lcd.setCursor(0, 0); //Ustawienie kursora
lcd.print (Temp); //Wyświetlenie tekstu
lcd.print ("C");



delay(500);
}

U mnie działa. Musisz mieć coś zepsutego w swojej instalacji Arduino IDE. Co to za system, Windows? Robiłeś może jakieś update-y ostatnio? A może masz jakiegoś antywirusa, który coś miesza?

>> U mnie działa

Dopisywałeś linie lub deklaracje zmienych??

>> Musisz mieć coś zepsutego w swojej instalacji Arduino IDE.

Już je kilka razy reinstalowałem i wszystkie biblioteki. Przy wersji 1.5 nie było większych problemów. Nim wyższa wersja tym więcej dziwnych błędów mi się pojawia. Nawet w programy które wcześniej działały na nowych wersjach nie chcą się kompilować 🙁

>> Co to za system, Windows?

Legalny Windows XP z service pack 3

Muszę sprawdzić na Windows 10 czy też będzie robił takie jaja.

>> Robiłeś może jakieś update-y ostatnio? A może masz jakiegoś antywirusa, który coś miesza?

Staram się mieć wszystko aktualne.

Używam Nortona ale on raczej nie robi takich problemów i nie podejrzewam go o to bo co ma jego działanie do kompilowania większej liczby linii w IDE?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...