Projekt mit einer Header- und zwei C-Programmen in Borland C++ 4.5



  • Hallo Leute 😕

    Habe ein Problem und das Handbuch hilft nicht wirklich weiter.

    Ich möchte eine selbsterstellte Headerdatei und eine dazugehörige C-Datei in meinem Hauptpragramm einbinden. (Ein bisschen doof geschrieben, aber ich denke ihr wisst schon was ich meine)

    Also die Header enthält die deklaration der dazugehörigen C-Datei, die wiederrum die Funktion oder das ausführbare Modul enthält.

    Ich bekomme es einfach nicht hin, das ich das daraus entstehende kleine Programm läuft. Hier mein Code für alle drei Dateien.

    Hauptdatei mit Funktion main

    /******************************************************************************/
    /* A3_01_1A Einlesen der Deklarationen für die Funktionen /
    /* 'Nichts' und 'Ausgab' aus der Header-Datei 'test.h'. /
    /* Linken der Definitionen aus der Datei 'EIGEN.LIB' /
    /
    ***************************************************************************/

    #include <stdio.h>

    #include "c:\bc45\bin\lb1a\tes.h" /* Deklarationen der Funktionen */
    /* 'Nichts' und 'Ausgab' einlesen */

    void main(void) /* Hauptfunktion 'main' /
    {
    int x; /
    Variable für das Programmende */

    Nichts(); /* Aufruf der Funktion 'Nichts' /
    Ausgab(); /
    Aufruf der Funktion 'Ausgab' */

    scanf("%d",&x); /* Programm anhalten */
    }

    /******************************************************************************/

    Das ist die Einzubindende Header-Datei

    /******************************************************************************/
    /* Deklaration der Funktionen 'Nichts' und 'Ausgab' /
    /
    *****************************************************************************/
    /* tes.h */

    void Nichts(void); /* Deklararion der Funktionen /
    void Ausgab(void); /
    'Nichts' und 'Ausgab' */

    /******************************************************************************/

    Und ganz zum Schluß die eigentlich Funktionsdatei C zu der Header-Datei

    //
    /* Definition der Funktionen 'Nichts' und 'Ausgab' */
    /
    /

    #include <stdio.h>

    void Nichts(void) /* Funktionsdefinition von 'Nichts'. */
    { /* Hinter dem Funktionsnamen steht */
    } /* kein Semikolon. */

    /********************************************************************/

    void Ausgab(void) /* Funktionsdefinition von 'Ausgab'. */
    {
    printf("Die Funktion 'Ausgab' schreibt einen Text auf den Schirm\n");
    }
    /********************************************************************/

    Das ist die Fehlermeldung

    Linking a3_01_1a.exe:
    Linker Error: Undefined symbol Ausgab() in module A3_01_1A.CPP
    Linker Error: Undefined symbol Nichts() in module A3_01_1A.CPP

    Irgendwie kann der Linker die Header- und C-Datei nicht finden. Oder vielmehr sieht er sie nicht als definiert an.

    Ich habe ein neues Projekt angelegt und die Hauptfunktion erstellt. Dann habe ich die C-Datei mit Knotenhinzufügen "dazugegeben" und die Header-Datei wurde ja schon mit der Angabe des Verzeichnisses angegeben.

    Was ich bei diesem Compiler nicht verstehe, ist das Anlegen einer eigenen Objektdatei (oder Linkerdatei?) , die die Inhalte für den Linker beinhaltet.

    Wie funktioniert das bei diesem Compiler? Oder ist der Fehler sogar in den Programmdateien zu finden?

    Dank Euch schon jetzt für Eure Hilfe

    champmann 😕



  • Hallo

    Sorry!! Habe vergessen zu erwähnen, dass das ganze noch unter DOS laufen soll. 😕


Anmelden zum Antworten