Forum: Compiler & IDEs [gelöst] CPU Architektur im Präprozessor erkennen


von Florian O. (simuru)


Lesenswert?

Hallo Forum.

Ich suche eine Möglichkeit festzustellen ob ich den Code grade für 
meinen Rechner (Host, X86 oder x64_X86) oder einen beliebigen Embedded 
Prozessor kompiliere.

Meine Hoffnung ist dass der GCC ein Define setzt wie z.B.:
1
#if (GCC_VER == avr-gcc)
2
cli();
3
#else
4
disable_int_for_architecture_xy();
5
#endif

Gibt es ein ein Define welches der GCC automatisch setzt? Scheinbar habe 
ich nicht das passende ge-guurgelt.

[edit:]
Manchmal ist man einfach zu doof es zu finden... Für alle die das 
gleiche mal suchen:

http://www.atmel.com/webdoc/AVRLibcReferenceManual/using_tools_1using_avr_gcc_mach_opt.html

"In addition to the preprocessor macros indicated in the tables below, 
the preprocessor will define the macros __AVR and __AVR__ (to the 
value 1) when compiling for an AVR target."

: Bearbeitet durch User
von Markus F. (mfro)


Lesenswert?

manchmal ist es nützlich zu wissen, welche Defines der Präprozessor "von 
sich aus" setzt. Glücklicherweise gibt's auch dafür beim gcc eine 
passende Option:
1
# cpp -dM </dev/null

gibt dir die entsprechende Liste aus.

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.