Hallo, ich hab es schon mal vor einiger Zeit verwendet doch finde den Artikel nicht mehr. Es geht darum, das ich im aktuellen Projekt zwei verschiedene SW-Stände führen will. RELEASED und test zB. Nun habe ich im Code mit #if RELEASE -> #endif den getesteten Code eingeklammert und ausserhalb des #if-Bereichs den neuen Code stehen. Nun würde ich gerne beim make-Aufruf RELEASE mitübergeben oder nicht, je nachddem ob ich getesteten Code ins HEX schreiben will oder nicht. Mir ist bewusst das ich RELEASE you mit #define im Code setzen könnte, will es aber nicht. Die make Option -D funktioniert nicht, zumindest so wie ich sie bis jetzt ausprobiert habe. Aktuell benutze ich Eclipse und AVR Plugin (neu für mich) und ändere den make-Aufruf im Project-Properties-Builder Settings-Build command: Vielleicht ist auch das Schuld?! Schon mal danke für eure Antworten.
Gast
#2131926
Beim GNU make kann man Variablen direkt beim Aufruf setzen:
1 | |
Im Makefile kann man dann entsprechend darauf reagieren, die Zuweisung beim Aufruf überschreibt Zuweisungen im Makefile.
Gast
#2131997
Daniel Ple schrieb: > Die make Option -D funktioniert nicht, zumindest so wie > ich sie bis jetzt ausprobiert habe. Hm. Dann hast du da was falsch probiert. Ein -DRELEASE in den Compileroptionen funktioniert garantiert. Daniel Ple schrieb: > Aktuell benutze ich Eclipse und AVR Plugin (neu für mich) und ändere den > make-Aufruf im Project-Properties-Builder Settings-Build command: > Vielleicht ist auch das Schuld?! Den Aufruf von make solltest du in Ruhe lassen. Alles, was make machen soll, steht im makefile. Das erstellt Eclipse zwar automatisch, du kannst aber in den settings unter C/C++ angeben, was mit drinstehen soll. Fügst du da unter Compiler/other option besagtes -DRELEASE hinzu, klappts auch mit dem makekfile. Oliver
Andreas B. schrieb: > Beim GNU make kann man Variablen direkt beim Aufruf setzen: >
1 | |
> > Im Makefile kann man dann entsprechend darauf reagieren, die Zuweisung > beim Aufruf überschreibt Zuweisungen im Makefile. D.h. im Makefile:
1 | |
2 | |
3 | |
Denn -D ist kein make-Schalter sondern ein gcc-Schalter.
Gast
#2132571
Eclipse bietet doch nun schon alles, um solche SW-Stände einfach zu verwalten. In den Projekt-settings einfach für das entsprechede Target dei gewünschten Defines eintragem, fertig. Oliver
Euch allen DANKE! Dein Vorschlag mit dem Eintrag werde ich übernehmen. Toll, mit dem Screenshot - hab ich auch das Menu gleich gefunden.
Gast
#2133901
Daniel Ple schrieb: > Nun würde ich gerne beim make-Aufruf RELEASE mitübergeben oder nicht, je > nachddem ob ich getesteten Code ins HEX schreiben will oder nicht Das wäre für mich das make target, also: make release oder make debug im Makefile jeweils ein entsprechendes Target einrichten, bei dem die passenden #defines beim Compileraufruf gesetzt werden. Nach dem Linken kann man dann auch gleich den Programmer starten. MfG Klaus
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
