undefined symbol
-
Hallo.
Ich bin dabei ein Programm zu schreiben, welches bestimmte Module (*.so) dynamisch zur Laufzeit mittels dlfcn.h (also dlopen, etc.) lädt und deren Funktionen ausführt.
Das klappt soweit auch recht gut, nur bei einem der Module erhalte ich beim Ausführen die Fehlermeldung:Error during dlopen(): ./libA.so
Error: ./libA.so: undefined symbol: _ZN6ForestD1Ev(btw: zum testen werden die Module mit RTLD_NOW geladen)
Es gibt eine Klasse Forest, die aber eigentlich eingebaut werden sollte...
Hier der entsprechende Makefile-Auszug:
$(CC) $(CFLAGS) -fpic -c $(PATH)/A.cpp -o (CC) $(CFLAGS) -fpic -c $(PATH)/AData.cpp -o (CC) $(CFLAGS) -fpic -c $(PATH)/Tree/Forest.cpp -o (CC) $(CFLAGS) -fpic -c $(PATH)/Tree/Tree.cpp -o (CC) $(CFLAGS) -fpic -c $(PATH)/Tree/Branch.cpp -o (CC) $(CFLAGS) -fpic -c $(PATH)/Tree/Leaf.cpp -o (CC) -shared -fpic $(PATH)/Tree/Branch.o $(PATH)/Tree/Leaf.o $(PATH)/Tree/Tree.o $(PATH)/Tree/Forest.o $(PATH)/Candidate.o $(PATH)/AData.o $(PATH)/A.o -o $(PATH)/libA.soHab ich was falsch gemacht oder was vergessen? Hat jemand einen Tip?
bye
-
countless schrieb:
Hab ich was falsch gemacht oder was vergessen? Hat jemand einen Tip?
Falsch gemacht: Vermutlich die falsche Library angegeben (die Fehlermeldung besagt, daß er die Funktion "_ZN6ForestD1Ev" nicht gefunden hat - keine Ahnung, wie die undekoriert heißt).
Vergessen: Etwas Quellcode
Tip: Frag mal im Linux-Board nach
-
Etwas Schützenhilfe
$ c++filt _ZN6ForestD1Ev Forest::~Forest() $
Könnte also sein dass die Impl vom dtor fehlt.
-
Danke für die Antworten!
Ich hatte wirklich die Impl vom Destruktor vergessen... Asche über mein Haupt
"c++filt" kannte ich noch nicht... danke für den Tip!
bye