www.mikrocontroller.net

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


Autor: Barny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
unsigned char uchVal;

for(uchval = 0; uchVal < 0x05;uchVal++)/*Hier gibt's einen Fehler weil falsch geschrieben*/
{
}
Wenn man jetzt so kompilliert passt alles:
unsigned char uchVal;

for(uchVal = 0; uchVal < 0x05;uchVal++)/*Korrigiert*/
{
}

Und wenn man den alten Zustand wieder herstellt, wird kein Fehler 
gemeldet:
unsigned char uchVal;

for(uchval = 0; uchVal < 0x05;uchVal++)
{
}
Es wird ohne Fehler compiliert, als ob alles in Ordnung ist obwohl das 
Projekt zufor ordentlich bereinigt wurde.

Ist dass normal?

Autor: Peter (Gast)
Datum:

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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus Fehde (gizzmo)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Barny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Barny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.