Nutzen von Bibliotheken



  • Hallo liebes Forum,

    Ich habe folgendes Problem. Ich habe insgesamt drei Dateien. Eine main.c mit der main Funktion. Eine lib.h als Bibiothek. Und eine func.c als C- Datei für diverse Functionen. Nun möchte ich von der main.c Functionen benutzen, die in der func.c definiert und deklariert sind.

    Dazu bin ich folgendermaßen vorgegangen: Ich habe die lib.h bei beiden includiert, habe die Funktionsprototypen in die lib.h geschrieben und die Funktionen in der func.c zu Ende geschrieben.

    Ich erhalte trotdzem den Fehler:

    /tmp/ccUwycrd.o: In function `main':
    fb13_main.c:(.text+0x1c3): undefined reference to `func1'
    fb13_main.c:(.text+0x1e1): undefined reference to `func2'
    collect2: ld returned 1 exit status
    

    Wo ist der Denkfehler?



  • Hi!

    Du musst beide Dateien compilieren und anschließend linken:

    gcc -c -g -Wall -o main.o main.c // Compilieren von main.c
    gcc -c -g -Wall -o func.o func.c // Compilieren von func.c
    gcc -o test main.o func.o // Linken von main.o und func.o zu test
    

    mfg bernd



  • Also mein Compiler macht das Linken von selbst, von daher wär mal interessant, womit du compilierst.
    Und wenn deiner das auch tut, wären ein paar Code-Schnipsel nicht schlecht, damit man sieht, wie die Funktionen definiert, implementiert, includiert und verwendet werden.


Anmelden zum Antworten