Forum: Compiler & IDEs AVR-GCC: Wo wird Symbol "AVR" definiert?


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,
die Überschrift sagt schon alles: Mit
1
    #ifdef AVR
2
        #warning "Symbol AVR is defined"
3
    #endif
kann ich leicht herausfinden, daß in meinem Build-Prozeß (Atmel Studio 
6.2) das Symbol "AVR" definiert ist. Was ich gut finde. Nur: Wo? In den 
Build-Optionen finde ich es nicht.

Viele Grüße
W.T.

von SF (Gast)


Lesenswert?

Das Symbol AVR und viele andere sind im Compiler definiert. Eine Liste 
der vordefinierten Symbole erhält man mit
1
echo | avr-gcc -dM -E -

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

AVR ist übrigens nicht definiert, wenn man im standardkonformen
Modus (-std=c89 oder -std=c99) arbeitet, da der Bezeichner im
application namespace liegt.  In diesem Modus ist dann nur
1
__AVR__

definiert, denn das liegt im implementation namespace.  Besser also
gleich nur gegen die Variante mit den Unterstrichen testen.

von Walter T. (nicolas)


Lesenswert?

Danke für die beiden Antworten!

Jörg W. schrieb:
> Besser also
> gleich nur gegen die Variante mit den Unterstrichen testen.

Danke für den Tipp!

von Rolf M. (rmagnus)


Lesenswert?

Walter T. schrieb:
> Mit
>     #ifdef AVR
>         #warning "Symbol AVR is defined"
>     #endif
> kann ich leicht herausfinden, daß in meinem Build-Prozeß (Atmel Studio
> 6.2) das Symbol "AVR" definiert ist.

Damit findest du raus, daß ein Makro mit Namen AVR definiert ist, kein 
Symbol.

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.