Forum: Compiler & IDEs Nicht alle Fehler werden in WinAVR angezeigt


von Barny (Gast)


Lesenswert?

Guten Tag

Ich bin vor kurzem erst auf WinAVR umgestiegen und mache jetzt mein 
erstes Projekt mit dieser Programmierumgebung/IDE.
Also seid mir bitte nicht böse wenn ich Blödsinn mache.

Mir ist aufgefallen dass wenn ich einen Fehler (z.B. Verschreiben) nach 
dem Kompilierversuch korrigiert wird und dann nach dem erneuten 
Kompilieren wieder in den ursprünglichen Zustand zurückversetzt nicht 
mehr gemeldet wird.


Also ungefähr so:

Vor dem 1. Kompilieren:
1
unsigned char uchVal;
2
3
for(uchval = 0; uchVal < 0x05;uchVal++)/*Hier gibt's einen Fehler weil falsch geschrieben*/
4
{
5
}
Wenn man jetzt so kompilliert passt alles:
1
unsigned char uchVal;
2
3
for(uchVal = 0; uchVal < 0x05;uchVal++)/*Korrigiert*/
4
{
5
}

Und wenn man den alten Zustand wieder herstellt, wird kein Fehler 
gemeldet:
1
unsigned char uchVal;
2
3
for(uchval = 0; uchVal < 0x05;uchVal++)
4
{
5
}
Es wird ohne Fehler compiliert, als ob alles in Ordnung ist obwohl das 
Projekt zufor ordentlich bereinigt wurde.

Ist dass normal?

von Peter (Gast)


Lesenswert?

kann ich mir nicht vorstellen, kann es sein das deine Abhängkeiten nicht 
stimme? Er also die Quelle nicht neu compiliert.

von Oliver (Gast)


Lesenswert?

>Programmierumgebung/IDE.

Womit genau?
WinAVR hat an sich gar keine IDE. In PN, der dabei ist, kann man make 
aufrufen lassen. Was kompiliert wird, bestimmt dabei das makefile, 
welches du selber erstellen musst.

Oliver

von Marcus F. (gizzmo)


Lesenswert?

Weitere Ideen:

- nicht gespeichert (nein, ich halte Dich nicht für doof, kann ja mal 
passieren)
- Sourcen liegen auf Netzwerk-Laufwerk ==> ggf. Probleme wg. Caching
  Unwahrscheinlich, aber schon öfters gesehen.

von Barny (Gast)


Lesenswert?

Danke für eure Hilfe.

Markus hatte recht.

Ich hatte aus lauter Blödheit vergessen zu speichern.

Ich schau mir aber auch nochmal die Make-Datei etwas genauer an.
(Die richtig zu erstellen ist ja mehr Aufwand als das Eigentliche 
Programm.)

von Oliver (Gast)


Lesenswert?

>Ich hatte aus lauter Blödheit vergessen zu speichern.

In den Konfigurationseinstellungen von PN zu den externen tools kann man 
einstellen, daß das Editor vor dem Aufruf von make automatisch 
speichert.

Oliver

von Barny (Gast)


Lesenswert?

Ich habe jetzt wie's aussieht den Fehler gefunden.

Aus irgend einem Grund hat ProgrammersNotepad nicht alle Daten richtig 
abgespeichert.
Wenn ich mir die Dateien mit einem Hex-Editor anschaue, sind da einige 
Ascci-Null ('\0') und andere Steuerzeichen die da normalerweise nicht 
hingehören.
Dass hat Programme wie den Windows-Editor dazu verannlast nur einen Teil 
des Quellcodes anzuzeigen.

Ich habe alle Zeichen gelöscht die nicht in den Quellcode gehören und 
schreibe jetzt einfach alles mit AVR Studio.
Bis jetzt läuft alles so wie es soll.

Danke für eure Hilfe.

von Simon K. (simon) Benutzerseite


Lesenswert?

Das Problem (*) entsteht unter anderem auch deswegen, weil bereits 
kompilierte und nicht wieder veränderte .c Dateien nicht nochmaligst 
kompiliert werden (außer man macht ein make clean vorher). Es werden 
also nur geänderte .c Dateien überhaupt kompiliert und deswegen werden 
Fehler aus den anderen .c Dateien nicht angezeigt.

EDIT: *) Ein ähnliches Problem :-) Bei mehreren .c Dateien.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.