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.