Hallo, habe ich in WinAVR die Möglichkeit, per Präprozessor-Anweisung das Kompilierdatum in den generierten Code einzufügen? Grund: Die Geräte sollen per Info-Befehl die Software-Version und das Kompilierdatum ausgeben, und ich möchte nicht bei jedem Gerät immer diese Daten per Hand in einen Flash-String eingeben, sondern sie sollen dort automatisch landen. Ich stelle mir eine Präprozessor-Variable vor wie #date und #time, evtl. sogar #file oder #projectname. Geht das?
#include <stdio.h> int main() { puts(_DATE_); puts(_TIME_); puts(_FILE_); return 0; }
Hallo Benny, ich weiß vom MS Visual Studio das es eine direktive namens _LINE_ oder _FILE_ gibt mit der man die aktuelle zeilennummer bzw. den aktuellen dateinamen als string geliefert bekommt. Ist aber unter MS keine präprozessor-direktive sondern ein Makro (glaube ich jedenfalls) Versuchs doch mal mit _DATE__ und __TIME_ Gruß Rene
Unter Linux kannst du's mit diesem Maketarget machen: .PHONY : date date: @echo "const char build[]=\"Compiled: `date +%d.%m.%Y`\";" > date.c @touch -t `date +%Y%m%d`0000.00 date.c der erste Befehl schreibt einen String mit dem Datum in date.c. Der 2 stellt das Änderungsdatum auf 0Uhr, so das die Datei nur 1x am Tag compiliert wird. Unter Windows dürfte das in etwas so aussehen: .PHONY : date date: @echo "const char build[]=\"Compiled: " > date.c @date >> date.c @echo "\";" Ich weiß nicht ob die Anführungszeichen für Windows richtig escaped sind und ob date weitere Parameter erwartet. Ein Tool wie touch ist mir bei Windows nicht bekannt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.