Kommandozeilen-Aufruf durch den Precompiler

OP #1230209
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.