Forum: Mikrocontroller und Digitale Elektronik Präprozessordatei erzeugen avrdude


von Thomas Frosch (Gast)


Lesenswert?

Hi Leute,

ich benutze avrdude und möchte das Makefile anpassen.
Ich will prüfen was der Präprozessor aus manchen meiner defines macht.

Wie muss ich das Makefile ändern, damit ein File erzeugt wird, welches 
mir den Programmcode nach durchlauf des Präprozessors anzeigt?

Schonmal vielen Dank für eure Hilfe!
von Thomas Frosch (Gast)


Lesenswert?

Es würde mir erstmal auch reichen irgendwie anders zu prüfen was der 
Präprozessor macht!!
von Husten (Gast)


Lesenswert?

Hallo,

es wäre hilfreich zu wissen, was Du vom Präprozessor erwartest, und wie 
Du das umgesetzt hast. Ein nur "nach Präprozesor-File" gibt es glaub ich 
nicht, könnte mich aber irren. Du könntest dir den Disasembly 
anschauen...

Grüße
von Stefan E. (sternst)


Lesenswert?

"avrdude" (was soll das eigentlich mit der Frage zu tun haben?) und 
"Makefile" klingt nach gcc. Die einfachste Variante ist es dann, den 
Compiler-Optionen ein -save-temps hinzuzufügen. Zu jeder C-Datei 
bekommst du dann eine s- und eine i-Datei. Letztere enthält den Source 
nach der Bearbeitung durch den Präprozessor.
von (prx) A. K. (prx)


Lesenswert?

Der Präprozessor ist m.E. im GCC intergriert, arbeitet also ohne 
Tempfile. Aber der Aufruf "gcc -E" produziert den Output des 
Präprozessors. Also sowas wie
   gcc -E ...options... source.c >source.tmp
von Husten (Gast)


Lesenswert?

mea culpa! ich irrte...
von (prx) A. K. (prx)


Lesenswert?

Ok, --save-temps hat die gleiche Wirkung. Es gibt eben mehrere Wege nach 
Rom.
von Thomas Frosch (Gast)


Lesenswert?

Super!! Vielen Dank!

im Makefile habe ich es mit -E nicht hinbekommen. --save-temps 
funktioniert.

-E wird wahrscheinlich in der Kommandozeile gehen...

Trotzdem funktioniert prima! Vielen Dank!
von LaTeX-Syntax (Gast)


Lesenswert?

Thomas Frosch schrieb:
> im Makefile habe ich es mit -E nicht hinbekommen. --save-temps
> funktioniert.
>
> -E wird wahrscheinlich in der Kommandozeile gehen...

--save-temps ist genauso ein Kommandozeilenparameter wie
-E - oder wo hast Du das hingeschrieben?

Aus der gcc manpage:

       -E  Stop after the preprocessing stage; do not run the compiler 
proper.
           The output is in the form of preprocessed source code, which 
is
           sent to the standard output.

           Input files which don't require preprocessing are ignored.




 LaTeX-Syntax
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.