mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommandozeilen-Aufruf durch den Precompiler


Autor: Hans Wurst (hans_wurst)
Datum:

Bewertung
0 lesenswert
nicht 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:
#RueckgabeWert = cmd.exe meinProgramm.exe
#define   meinStringImController    RueckgabeWert

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven P. (haku) Benutzerseite
Datum:

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

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.