Forum: Compiler & IDEs WinAVR immer noch total buggy???


von Notker (Gast)


Lesenswert?

Hallo,

jetzt habe ich mich nach so langer Zeit und all den Lobeshymnen, die man 
in diesem Forum über den WinAVR liest und dass er ja soo viel besser als 
der gute und bewährte avrgcc sein soll, mal dazu hinreissen lassen, ihn 
zu installieren und zu benutzen. Und was ist? Schon bei meiner ersten 
Source steigt er bei einer Präprozessorzeile der Art:

# if VERSION == 1

aus und meint, Gleichheitszeichen seien in Präprozessordirektiven nicht 
erlaubt? Also da musste ich aber erst zweimal ungläubig hinschauen und 
mir die Augen reiben, zumal ich die momentan aktuellste Version gerade 
erst frisch heruntergezogen und installiert hatte.

Mal ehrlich, das ist ja schon ziemlich enttäuschend und meiner Meinung 
nach kann man so etwas doch keinem Menschen empfehlen, oder sehe ich das 
falsch?

Ich habe ja Verständnis, wenn irgendwelche Bugs zutage treten wenn man 
irgendeinen aussergewöhnlichen Code schreibt, der nicht gerade 
alltäglich ist. Aber wenn man schon nach den ersten paar Minuten auf 
solch katastrophale Bugs aufläuft, dann kann das gesamte Produkt wohl 
kaum gut ausgetestet sein und da sind mit Sicherheit noch eine ganze 
Reihe andere grobe Hämmer verborgen.

So, das wollte ich nur mal loswerden.

Gruss,

Notker

von Notker (Gast)


Lesenswert?

Bevor hier in diesem Forum nun irgendwelche Leute anzweifeln, dass ich 
denn auch tatsächlich intelligent genug bin um die aktuellste Version zu 
finden, es handelt sich hierbei um die Version 20030312!

von Joerg Wunsch (Gast)


Lesenswert?

Du kannst natürlich loswerden, was Du willst, aber genausogut
könnte ich behaupten, daß ich heute eine Kuh auf dem Fahrrad
mitgenommen hätte...  Glauben wird beides keiner.

Es sollte Dich zumindest stutzig machen, daß offensichtlich ja
einige Tausend Leute mit WinAVR zurecht kommen.  Du kannst Dir
dabei ziemlich sicher sein, daß ein simpler Vergleich in einer
Präprozessordirektive bei jedem davon dabei ist -- der wird
nämlich bereits benötigt, um die Bibliothek selbst zu bauen,
d. h. wenn Der nicht gehen würde, ließe sich gar kein WinAVR
bauen.

Also, such besser Deinen pilot error, Herr Notker.

von Oryx (Gast)


Lesenswert?

Ich habe ja wenig Ahnung von Präprozessorzeilen,
bei mir arbeitet der folgende Code tadellos

#define DUSSEL 1

#if DUSSEL == 1
  #error dussel eins
#endif

Das DUSSEL benutze ich immer zum Ausprobieren und Testen, hat wirklich 
nichts zu sagen.


Oryx

von Joerg Wunsch (Gast)


Lesenswert?

Andere Leute nennen es halt DEBUG, klingt etwas freundlicher :),
außerdem genügt es (wenn man nicht verschiedene Werte von
DUSSEL unterscheiden will -- was der OP natürlich mit VERSION
offensichtlich wollte), dann

#if DEBUG

zu schreiben.

von Schmittchen (Gast)


Lesenswert?

@Notker: Vielleicht liegt es ja an deinem Leerzeichen nach "#"?

Schmittchen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nein, das geht auch mit Leerzeichen. Ich vermute in diesem Fall befindet 
sich das Problem zwischen Stuhl und Monitor ;-)

von Joerg Wunsch (Gast)


Lesenswert?

Es geht übrigens sogar mit Leerzeichen vor dem #, allerdings
ist das nicht mehr vom Standard abgedeckt.  Der Standard verlangt,
daß das # das erste Zeichen der Zeile ist.  Leerzeichen oder
Tabs nach dem # sind dagegen zulässig.

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.