Alex R. schrieb:
> Mein vorhaben ist, eine Lib für ein Display zu programmieren und der
> User soll die möglichkeit haben anhand des setzens eines #define eine
> Schriftart auszuwählen. Die Schriftarten sind als einzelne header-Files
> vorhanden.
>
> z.B.
>
1 | > #define ARIAL // auswahl der Arial.h
|
2 | > #include "test.h"
|
3 | >
|
4 | > test t;
|
5 | >
|
6 | > int main(void)
|
7 | >
|
das kann aber so nicht funktionieren.
Denn der #define steht hier zwar zur Verfügung, wenn test.h inkludiert
wird. Von daher wäre das in Ordnung.
Wo er aber nicht zur Verfügung steht, das ist wenn test.cpp compiliert
wird. Jedes cpp File wird für sich selbst und unabhängig von allen
anderen compiliert. Was in dieser main.cpp an #define enthalten ist,
interessiert den Compiler nicht die Bohne wenn er test.cpp compiliert.
Der Compiler sucht sich nicht aus allen am Verzeichnis vorliegenden cpp
Files das zusammen, was er gerade braucht. Ein cpp File - ein unabhängig
von allen anderen durchgeführter Compiliervorgang.
Entweder du machst ein H-File, das zwangsweise von allen CPP Files
inkludiert werden muss. zb ein config.h oder du gibst die Option in dein
makefile bzw. in die korrespondieren Variante in deiner IDE auf dass so
sichergestellt ist, dass dem Compiler immer das entsprechende #define
von aussen vorgegeben ist.