Ergebnis 1 bis 2 von 2

Thema: Includes von Header-Dateien

  1. #1
    Kagul
    Gast

    Standard 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:


    Code:
    #ifndef buffers
    #define buffers
    #endif
    extern HDC  frontbuffer ;
    extern HDC  backbuffer ;
    In den Header-Dateien:

    Code:
    #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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Includes von Header-Dateien

    Hi!
    Erstmal: Ein Header-Guard sieht so aus:
    Code:
    #ifndef MYFILE_H
    #define MYFILE_H
    // Code...
    #endif
    Beim #include brauchst du kein #if, brauchst du z.B. bei <iostream> ja auch nicht.
    Du kannst mit dem GNU Compiler (MinGW unter Windoof) recht einfach auf der Konsole den Präprozessor überprüfen:
    Code:
    g++ -E main.cpp # Gibt Code nach dem Präprozessor aus
    Falls du GNU/Linux, Mac, BSD oder unter Windoof eine installierte Bash hast geht es so:
    Code:
    g++ -E main.cpp | less # Verhindert Bildschirmüberflutung
    Dann: Was soll das für ein Config-File sein? Für mich ist das ein normaler Header-File.
    Das extern entbindet dich nicht deiner Pflicht, die Definition der Klasse/der Funktion zu linken. Du musst dem Linker mitteilen, dass die entsprechende Objektdatei berücksichtigt werden soll. Sonst läuft die Verwendung ins Leere und er meckert zu Recht.

    Viele liebe Grüße
    The User

Ähnliche Themen

  1. per Link includes in bestimmtem Bereich laden
    Von -TS-design im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 16
    Letzter Beitrag: 04.08.2008, 15:45
  2. .:HEADER:. !...:!:
    Von sliminator im Forum HTML & CSS Forum
    Antworten: 15
    Letzter Beitrag: 11.06.2007, 13:26
  3. abr dateien in jbr dateien umwandeln
    Von Ich 101 im Forum Computer - Internet Forum
    Antworten: 0
    Letzter Beitrag: 29.05.2007, 03:06
  4. $header als variable für header.html
    Von im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 15.10.2006, 14:24
  5. sicherheit bei includes
    Von BendOr im Forum Tutorials, Workshops und Anleitungen
    Antworten: 0
    Letzter Beitrag: 14.01.2006, 18:57

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •