moin, moin,
die Macros __DATE__ und __TIME__ machen fast das Richtige für mich,
aber damit das Datum für Menschen und Maschinen besser lesbar wird,
hätte ich gern was in der Form yyyy-mm-dd hh:mm:ss.
Gibt's da evt. einen ganz anderen Trick? Noch schöner wäre es nämlich,
wenn der Zeitstempel nicht vom Compiler sondern erst vom Linker
erzeugt würde. Wie macht man das richtig?
Das Ganze soll gleichzeitig als Versions-Nummer dienen und die muß
bei Firmware-Updates von einem HCS12 geprüft werden und ich hab'
keine Lust, das __DATE__-Format zu parsen.
[gelöst] __DATE__ & __TIME__ im Iso-Format?
[gelöst] __DATE__ & __TIME__ im Iso-Format?
Zuletzt geändert von cosmac am 17.06.2007 22:01:38, insgesamt 1-mal geändert.
Beware of programmers who carry screwdrivers.
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt
Hi,
so auf die Schnelle würden mir folgendes einfallen.
1.) Du holst Dir die Sourcen vom gcc und änderst die Makrodefinition nach Deinen Vorstellungen ab.
Vorteil: Du brauchst Deine Sourcen nicht ändern
Nachteil: Dein Source erzeugt mit einem anderen Compiler ein anderes Ergebnis
2.) Du redefinierst die Makros nach Deinen Vorstellungen in einer eigenen Headerdatei und bindest diese ein.
Vorteil/Nachteil siehe 1.)
3.) (quick and dirty) Du änderst Deinen build Prozess ab. Erstellst ganz am Anfang einen Headerdatei
bindest diese in Deinen Source ein.
Vorteil/Nachteil siehe 1.)
Ich würde in so einem Fall 3.) verwenden. Statt __DATE__ aber z.B. __MYDATE__ definieren. Das Makefile entsprechend anpassen, damit die Headerdatei erstellt wird.
SubOptimal
so auf die Schnelle würden mir folgendes einfallen.
1.) Du holst Dir die Sourcen vom gcc und änderst die Makrodefinition nach Deinen Vorstellungen ab.
Vorteil: Du brauchst Deine Sourcen nicht ändern
Nachteil: Dein Source erzeugt mit einem anderen Compiler ein anderes Ergebnis
2.) Du redefinierst die Makros nach Deinen Vorstellungen in einer eigenen Headerdatei und bindest diese ein.
Vorteil/Nachteil siehe 1.)
3.) (quick and dirty) Du änderst Deinen build Prozess ab. Erstellst ganz am Anfang einen Headerdatei
Code: Alles auswählen
date "+#define __DATE__ \"%Y-%m-%d %H:%M:%S\"" > mydate.h
Vorteil/Nachteil siehe 1.)
Ich würde in so einem Fall 3.) verwenden. Statt __DATE__ aber z.B. __MYDATE__ definieren. Das Makefile entsprechend anpassen, damit die Headerdatei erstellt wird.
SubOptimal
ja hallo,
danke für die Antwort, sowas hab' ich befürchtet. Bisher lief es praktisch so
wie dein Vorschlag 3. Wobei das ja wohl Compiler-unabhängig ist wenn ich
ein eigenes Macro verwende.
Inzwischen brauch' (naja, will) ich auch noch einen CRC-16 über das Binary.
Bei der Gelegenheit wird jetzt auch gleich der Zeitstempel reingebaut, also
direkt nach dem Linken.
Irgendwie dachte ich, sowas braucht doch jeder, nur ich find's nicht
danke für die Antwort, sowas hab' ich befürchtet. Bisher lief es praktisch so
wie dein Vorschlag 3. Wobei das ja wohl Compiler-unabhängig ist wenn ich
ein eigenes Macro verwende.
Inzwischen brauch' (naja, will) ich auch noch einen CRC-16 über das Binary.
Bei der Gelegenheit wird jetzt auch gleich der Zeitstempel reingebaut, also
direkt nach dem Linken.
Irgendwie dachte ich, sowas braucht doch jeder, nur ich find's nicht
Beware of programmers who carry screwdrivers.