Linker-Problem? undefined symbol zur Laufzeit [gelöst]
-
Moin, hoffe mal das ist das richtige Forum, ist ja an sich kein STL-Problem...
Und zwar habe ich ein C++-Projekt das bis vorgestern einwandfrei lief. Nun schmiert das Programm mit dem Hinweis ab (bei einer bestimmten Aktion):
./meinProgramm: symbol lookup error: ./meinProgramm: undefined symbol: functionX
Nun, bin etwas verwundert, denn das Linken klappt einwandfrei ohne jegliches Meckern. Die functionX ist in einer C-Library definiert etc. und auch mit extern "C" umgeben. Laut "nm" ist die Funktion auch drin in dem .a-File:
U functionX
000026ce T functionXNach dem Linken mit dem Programm allerdings sagt nm folgendes:
U functionXDa rein gar nichts verändert wurde verwundert mich dies ein wenig. Komplettes Aufräumen und neubuilden hat rein gar nichts verändert, das Problem bleibt bestehen. Ein ldd -d -r meinProgramm bringt:
undefined symbol: functionM (/libPath/eineLib.so)
undefined symbol: functionN (/libPath/eineLib.so)
undefined symbol: functionX (./meinProgramm)
undefined symbol: functionY (./meinProgramm)
undefined symbol: functionZ (./meinProgramm)alles Funktionen aus eben der C-Library. Auch das neue Erstellen der .so hat rein gar nichts gebracht (functionM und N nutzen X und Z nutzt Y).
Hat da jemand Erfahrungen mit? Werde hier noch bekloppt...
-
Merkwürdigerweise gehen einige Funktionen der Lib und andere nicht. Das macht in meinen Augen überhaupt keinen Sinn.
-
Okay, Problem gelöst.
Eine Entschlackung von "meinProgramm" hat dazu geführt das aus der lib nur Teile gelinkt wurden und so Object-Files ignoriert wurden die für eine SO benötigt wurden.
Naja, immerhin wieder ein paar nette Tools kennengelernt, also doch was gelernt.