Includes von Header-Dateien



  • Einen wunderschönen guten Tag wünsche ich,

    ich habe folgendes Problem:

    Ich schreibe ein Programm, welches Klassen, Headerdateien, welche zu den Klassen gehören, eine Config-Datei und natürlich eine Main-Datei.

    Die Header-Dateien Includieren sich untereinander (nicht alle, nur 1,2 stk.) und ich möchte in der Config-Datei etwas (in diesemfall ein HDC) definieren.

    Soweit so gut...

    In meiner Config-Datei steht:

    #ifndef buffers
    #define buffers
    #endif
    extern HDC  frontbuffer ;
    extern HDC  backbuffer ;
    

    in den Header-Dateien:

    #ifndef buffers
    #include "conf_cpp.h"
    #endif
    

    ...

    Benutze ich in den Header-Dateien die oben genannte Variante mit extern, so bekomme ich diesen Fehler:
    [Linker error] undefined reference to 'frontbuffer'
    und
    [Linker error] undefined reference to 'backbuffer'

    wenn ich aber extern weglasse, bekomme ich folgenden Fehler:
    multiple definition of 'backbuffer'
    bzw.
    multiple definition of 'frontbuffer'

    Vielleicht kann mir ja wer auf die sprünge helfen, wie ich denn nun zu meinem gewünschten Ergebniss komme.

    Schonmal vielen Dank im Voraus 🙂



  • Du hast mit 'extern ...' die Dinger nur deklariert. Du mußt sie auch irgendwo definieren.
    Schreib in eine der beteiligten c- oder cpp - Dateien in den globalen Gültigkeitsbereich:

    HDC frontbuffer = 0;

    Dasselbe für die andere Variable, dann sollte es funzen.


Anmelden zum Antworten