hallo Experten, ich plage mich mit folgendem Problem (Atmel Studio 6.0, 6.1, 5.0, avr_gcc, avr32_gcc): Ich erzeuge aus einem Quellcode mehrere Varianten. Dazu setze ich -- erstens einen Macro #define VARIANTE_SPEZIAL_1 oder so in einer zentralen Include.Datei. --zweitens: Das Feld Artifact Name in den Properties des Projektes auf einen passenden Namen, z.b. OutputSpezial_1 Diese beiden Schritte muss ich immer parallel machen. Einen Weg, das ganze auf einen Macro oder ein #define zu reduzieren habe ich nicht gefunden. OK, nicht optimal, aber damit kann ich leben. Der Compiler compiliert brav und erzeugt die richtige OutputSpezial_1.elf und ggf. auch eine OutputSpezial_1.hex, .lss etc. So weit, so gut. Nun möchte ich zusätzlich eine BIN-Datei erzeugen, die ich meinem Bootloader zum Fraß vorwerden kann. Kein Problem, denke ich, dafür gibts das Post-Build-Event. Und da gibts auch noch die wunderbaren Macros, z.B $(OutputFile). Leider enthält $(OutputFile) immer den erstmalig vergebenen Artifact Name. Wie auch immer ich den ändere, es bleibt dabei. Wenn ich genauer hinschaue, habe ich jetzt aber zwei Macros $(OutputFile). Einer mit dem ursprünglichen Namen, und einer mit dem gewünschten (wie Artifact) Wenn ich noch genauer hinschaue, kann ich sehen, dass die beiden auch in der Projektdatei enthalten sind. Ich kann sie auch editieren, dann erhalte ich das gewünschte Ergebnis. Natürlich nur bis zur nächsten Änderung. Wenn ich den "falschen" Macro lösche, ist der Output-Filename leer, ich generiere also ".elf" etc, obwohl der richtige Macro in der Projektdatei drin steht, aber offenbar zu weit hinten. Ist das ein Bug oder ein Feature? Hat jemand eine Lösung dazu? D.h. eine Variable. mit der ich die Output-Dateien sowohl beim Make als auch beim Postbuild festlegen kann? Am besten noch mit seinem #define-Macro verbunden. Einen erfolgreichen Tag Hartmut
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.