Kommandozeilen-Aufruf durch den Precompiler

OP #1230209
Lesenswert?

Hallo,

ist es möglich einen Code vom Precompiler ausführen zu lassen, der auf 
die Kommandozeile zugreift? Ich würde gerne den zurückgegebenen Wert als 
String in den eigentlichen Code (für den Mikrocontroller) einfließen 
lassen.

Ganz grob habe ich es mir in etwa so vorgestellt:
1
#RueckgabeWert = cmd.exe meinProgramm.exe
2
#define   meinStringImController    RueckgabeWert
#1230217
Lesenswert?

Das musst du in deiner Toolchain regeln.
Entweder im Makefile oder in einer Batchdatei, je nachdem was du 
benutzt.

Normalerweise haben Compiler einen Commandline Switch, mit dem es 
möglich ist, irgendwelche #define von aussen zu setzen. Oft gibt es auch 
eine Möglichkeit wie man diesem Makro einen Wert geben kann, so dass man 
effektiv beim Compileraufruf das Equivalent zu
#define MAKRO  WERT
erzeugen kann.

-> Compiler-Doku durchforsten.

Wenn das nicht geht, kannst du immer noch dein erzeugendes Programm so 
manipulieren, dass es seine Ausgabe in eine Datei macht und diese dann 
per #include in dein C-Programm hineinziehen. Das wird sogar recht 
häufig so gemacht, wenn es darum geht irgendwelche Tabellen oder Bilder 
oder dergleichen, die von einem Programm generiert werden, im C-Code 
weiterzuverwenden.

Aber einen Compiler, der es einem C-Code ermöglicht, während das 
Compilierens ein anderes Programm aufzurufen, würde wohl kein Entwickler 
aus naheliegenden Gründen benutzen wollen.
Gast #1230222
Lesenswert?

Direkt geht das nicht. Dem GCC (eigentlich dem CPP) kann man mit -D 
zusätzliche Konstanten mitgeben, etwa so:
1
$ gcc -D"HEUTE=\"$(date)\""

Sonst wäre auch der Makroprozessor M4 ganz brauchbar für sowas...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren