Mehrere C-Dateien zu einer ausführbaren kompilieren



  • Hi,

    ich habe in meinem aktuellen Projekt den Code auf 3 Dateien aufgeteilt:
    - first.c
    - second.c
    - main.c

    In first.c und second.c wurde jeweils eine Struktur deklariert sowie mehrere Funktionen. Die main.c erzeugt nun Strukturen und verwendet als Vorlage dabei die Strukturen, die in first.c und second.c deklariert sind. second.c greift aber auch auf die Struktur, die in first.c deklariert ist, zu. Is also alles ein bisschen verflochten.

    Nun wollte ich die 3 C-Dateien über den GCC mit gcc -c dateiname.c kompilieren und anschließend zusammenführen. Ich erhalte aber schon bei
    gcc -c main.c foglenden Error:

    Speichergröße von MyStruct ist unbekannt

    main.c:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main(void) {
        struct FirstStructure MyStruct;
        function_of_first_c(&MyStruct);
        return EXIT_SUCCESS;
    }
    

    Wie krieg ich da eine ausführbare Datei hin und wie mach ich die FirstStructure-Struktur dem Compiler bekannt?



  • Das lässt sich klassisch mit einer Header-Datei lösen, die alle struct-Definitionen enthält, also z.B. "meinetypen.h". Alle .c-Dateien binden diese Headerdatei dann ein.


Anmelden zum Antworten