Forum: Compiler & IDEs Variable Dateinamen beim Compilieren.


von gf (Gast)


Lesenswert?

HAllo zusammen

Ich habe ein Projekt, aus dem ich durch setzen von defines verschiedene 
Varianten compilieren kann. Je nachdem welche Variante ich compilieren 
will, kommentiere ich das jeweils andere deine aus. Das ganze sieht im 
Prinzip so aus:
1
#define VARIANTE_A             // Immer nur ein define gesetzt.
2
// #define VARIANTE_B
3
4
#ifdef VARIANTE_A
5
bla;
6
bla;
7
#endif
8
9
#ifdef VARIANTE_B
10
blub;
11
blub;
12
#endif

Kann ich irgendwie den Namen der Ausgabedatei (das Hex file) abhängig 
vom der eingestellten Variante machen? Ideal wäre wenn das Hexfile in 
einem Fall "VARIANTE_A.hex" und im anderen Fall "VARIANTE_B.hex" 
heisssen würde.
Ich nutze AVR Studio 4.13 und GCC.

Geht so was?

von Stefan E. (sternst)


Lesenswert?

Es würde gehen, wenn du das "#define VARIANTE_A" aus dem Sourcecode raus 
nimmst und das Definieren statt dessen im Makefile machen würdest. Dann 
kannst du dort auch nach Belieben andere Sachen davon abhängig machen 
(wie eben Dateinamen). Das geht aber nicht mit dem vom Studio 
generierten Makefile, du müsstest dann schon eine eigenes nehmen.

von Karl H. (kbuchegg)


Lesenswert?

Nicht das ich wüsste.

Aber warum machst du nicht folgendes:

Du setzt 2 Projekte auf.
Anstelle des fehlerträchtigen Auskommentierens, erzeugst du den jeweils 
richtigen #define mit den Compiler Settings (oder einem 
projektspezifischen Header File, welches nur diesen #define enthält + 
möglicherweise andere Dinge, die Variantenabhängig sind)

Beide Projekte teilen sich den Code insofern, als die Source-Files in 
einem gemeinsamen Verzeichnis stehen, von wo sich jedes Projekt bedient.


Viola. Benötigst du eine frische Version einer Variante, machst du 
einfach das zugehörige Projekt auf und compilierst. Du brauchst nicht 
fehlerträchtig irgendein #define auskommentieren und auch nicht darauf 
achten, dass immer alle Einzelteile für die jeweilige Version richtig 
umkompiliert wurden.

Und natürlich steht dir dann das Hex-File im jeweiligen Projekt bis zum 
nächsten Build zur Verfügung.

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
Noch kein Account? Hier anmelden.