Am Mon, 2002-07-15 um 08.37 schrieb Andreas Kofler:
Hi Liste!
Habe eine dynamische Bibliothek+Headerfile erstellt und installiert, wenn ich jetzt aber ein Programm mit dem g++ kompiliere und dagegen linke dann meldet er mir beim Linken 'undefined reference to . . .', Die genaue Fehlermeldung würde hier helfen.
So aber bleibt die Glasskugel ...
als wenn ich die Option -lMylib nicht angeben würde. Die Optin -lg++ hilft ebenfalls nicht. Kompiliere ich hingegen das Testprogramm mit gcc, so klappts wunderbar. Wenn ich die Library mit g++ übersetze, dann kappts ebenfalls. Die Parameterleste beim Kompilieren/Linken kann ich leider nicht mitschicken, da ich es nicht hier habe. Habe sie laut 'Systemprogrammierung unter Linux/Unix' gesetzt, oder auch mit den Parametern beim Kompilieren anderer Bibliotheken verglichen.
Hat jemand eine Idee? Ich tippe auf "C++-Mangling"
Stark vereinfacht ausgedrückt, deine Lib ist vermutlich eine C-Library und exportiert C-Symbole. Um diese in C++-Progs, als C-Funktionen verwenden zu können, wären extern "C" { } in den Headern notwendig. Also etwas ähnlich diesem: extern "C" { extern void foo( int bar ); } Ralf