www.mikrocontroller.net

Forum: Compiler & IDEs Binärzahlen unter linux nicht möglich?, Makefile-Portierun


Autor: Michael Z. (incunabulum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

1) kennt jemand eine Erklärung, warum Zahlen im Binärformat wie 
"0b00111100" unter WinAVR akzeptiert werden, diese aber unter Linux eine 
Fehlermeldung "invalid suffix "b00001100" on integer constant" liefern?

2) Desweiteren funktioniert unten aufgeführter Build-Step unter Windows 
(WinAVR Current) problemlos, wird unter Linux aber nicht erkannt. 
Fehler: "make: *** No rule to make target `pcModular-TestBench.elf', 
needed by `elf'.  Stop."
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
  @echo
  @echo $(MSG_LINKING) $@
  $(CC) $(ALL_CFLAGS) $^ --output $(BUILDDIR)/$@ $(LDFLAGS)

avr-gcc 4.1, make 3.81 in beiden Fällen. Kann dies mit unterschiedlichen 
Build-Optionen von WinAVR und "Ubuntu" avr-gcc zusammenhängen?

cu, mz

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Schreibweise von Binärzahlen ist nicht Bestandteil des 
C-Standards. WinAVR ist dahingehend erweitert worden, "richtige" 
C-Compiler aber kennen sowas nicht.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly wrote:

> ..., "richtige"
> C-Compiler aber kennen sowas nicht.

Bei GCC ist es mittlerweile offiziell drin.  Damit hat sich zumindest
der Teil der Argumentation aus dem C99-Rationale erledigt, der besagt,
dass der Vorschlag für Binärkonstanten ``due to lack of precedence''
nicht aufgenommen wurde. ;-)

Autor: Michael Z. (incunabulum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch wrote:
> Bei GCC ist es mittlerweile offiziell drin.  Damit hat sich zumindest
> der Teil der Argumentation aus dem C99-Rationale erledigt, der besagt,
> dass der Vorschlag für Binärkonstanten ``due to lack of precedence''
> nicht aufgenommen wurde. ;-)

Bleibt die Frage, warum mein gcc 4.1 dies nicht kann. Oder kam das 
danach? 4.2.x? Trotzdem gut zu wissen :)

cu, mz

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Z. wrote:

> Bleibt die Frage, warum mein gcc 4.1 dies nicht kann.

Weil der dafür zu alt ist.  Ich habe das Feature mal implementiert, weil
es hier im Forum jemand haben wollte. :-)  Von da ist es dann in die
FreeBSD- und WinAVR-Distribution geraten, und irgendwann habe ich mich
hingesetzt, und es mal ordentlich bei GCC als Patch eingereicht.  Hat
anfangs auch ein wenig Argumentation gekostet, GCC möchte nicht
unbedingt creaping featurism bekommen, aber man konnte meiner Argument-
ation folgen.

> Oder kam das
> danach? 4.2.x?

4.2.x habe ich mir noch nicht angeguckt, kann sein, dass es sogar erst
nach dem 4.2er Branch in den SVN-Trunk gekommen ist.

Autor: Michael Z. (incunabulum)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg, danke dir. Denn heisst es bei Gelegenheit selber compilieren...

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 4.2.x habe ich mir noch nicht angeguckt, kann sein, dass es sogar
> erst nach dem 4.2er Branch in den SVN-Trunk gekommen ist.

In 4.2.1 ist's noch nicht drin.

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.