Hallo Leute, ich beschäftige mich gerade mit gcc und MSP430 und bin im Netz und in diversen Makefiles auf "-D_GNU_ASSEMBLER_" gestoßen. Z.b. msp430-gcc -x assembler-with-cpp -D_GNU_ASSEMBLER_ -mmcu=msp430x1121 -c file.s -o file.o Mir ist klar, das es sich hier expliziet um "_GNU_ASSEMBLER_" handelt, selbst dazu gibts keine Beschreibung im GCC. Weiss jemand, was diese Anweisung bedeutet bzw. wo ich was drüber lesen kann?
Schau mal in file.s. Da werden wohl Unterschiede gemacht in Befehlen, Direktiven, etc. anhängig davon, ab der GNU-Assembler (msp430-as) am Werke ist oder nicht. Johann
eben nicht, da taucht nix auf. Das sieht so aus, als würde man das "-D_GNU_ASSEMBLER_" provesorisch einfügen, nach dem Motto "sicher ist sicher". Ich würde aber erstmal wissen, was der Ausdruck bewirkt.
Du rufst den GCC (msp430-gcc) mit einem Assembler File file.s wesshalb du das _GNU_ASSEMBLER brauchst. Alternativ kannst du anstelle des GCC direkt den Assembler aufrufen msp430-as ...
andi wrote: > eben nicht, da taucht nix auf. Das sieht so aus, als würde man das > "-D_GNU_ASSEMBLER_" provesorisch einfügen, nach dem Motto "sicher ist > sicher". Ich würde aber erstmal wissen, was der Ausdruck bewirkt. -D findest du in der gcc-Doku. http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Preprocessor-Options.html#Preprocessor-Options Es Definiert das Makro GNU_ASSEMBLER, d.h. es kann mit
1 | #ifdef _GNU_ASSEMBLER_
|
2 | // resp.
|
3 | #if defined (_GNU_ASSEMBLER_)
|
abgetestet werden. foo-gcc delegiert .s-Dateien automatisch an den Assembler (foo-as), die Dateien werden allerdings nicht präprzessiert. http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Overall-Options.html#Overall-Options Präprozesst werden nur .S Dateien, was aber je nach OS Verwirrung wegen Groß/Kleinschreibung gibt. Mit -x kann man explizit angeben, wie eine Datei zu handhaben ist. Man kann damit auch eine C++ Datei .text nennen oder eine Assembler-Datei .c++; oder eben eine Assebler-Datei, wo erst der Präprozessor drüber soll, nach -x assembler-with-cpp (cpp="C pre processor", nicht "C++" ;-)) angeben. Johann
danke Johann, jetzt habe ich die Stelle in der gcc-Doku gefunden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.