Bibliothek mit Weak symbols
-
Hallo Leute,
ich schreibe mir grad eine Bibo mit weak-symbols das Header-file sieht wie folgt aus: foo.h :extern void foo(void); #pragma weak foo = pfoo extern void pfoo(void);
dem entsprechend habe ich pfoo in foo.c implementiert
#include <stdio.h> void pfoo(void) { printf("42\n"); }
Dann habe ich die statische Library gebaut mit:
gcc -fPIC -Wall -g -c foo.c gcc -ggdb3 -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 foo.o -lc
Nun wollte ich die Library in einem normalen C-Programm nutzen, hello.c:
#include <stdio.h> #include "foo.h" int main(void) { foo(); return 0; }
und habe es mit
gcc -o hello hello.c -lfoo
kompiliert. Dabei erzeugte der gcc folgende Fehlerasugabe:
**
foo.h:2:13: Fehler: »foo« als Alias für undefiniertes Symbol »pfoo«
**Ich habe danach noch verschiedene Sachen ausprobiert, bin aber nicht auf die Loesung gekommen. Habt ihr ne Idee was ich falsch mache ?