Problem mit dlopen

10/06/2009 - 16:02 von Guenther Sohler | Report spam
Hallo Gruppe!


In meinem Programm verwende Ich dlopen, um shared objects zu laden.
Dies hat bisher nun ganz gut funktioniert.

Inzwischen verwende Ich in meinen shared objects auch funktionien, die
im Hauptprogramm definiert sind.

Jetzt schlaegt dlopen nun leider fehl, weil er das shared object nicht
mehr binden kann.

Hier ein paar interessante zeilen:

hier im Makefile wird das .so erzeugt

%.so : %.cpp
g++ -o $@ -shared $< ${CFLAGS} ${LDFLAGS}

So ist die Funktion definiert, die aus dem Mainprogramm aufgerufen werden
soll:


extern Parameter inter_call(GsString name,parameterList &p);

Dies ist die funktion, die neuerdings fehl schlaegt


handle=dlopen(libname,RTLD_LAZY|RTLD_GLOBAL);

Hat jemand eine Idee ?
 

Lesen sie die antworten

#1 Claus Reibenstein
10/06/2009 - 16:37 | Warnen spam
Guenther Sohler schrieb:

In meinem Programm verwende Ich dlopen, um shared objects zu laden.



C kennt keine "shared objects".

hier im Makefile wird das .so erzeugt



Makefiles haben auch nichts mit C zu tun.

%.so : %.cpp
g++ -o $@ -shared $< ${CFLAGS} ${LDFLAGS}



Das ist nach C++ aus. C++ und C sind zwei verschiedene Sprachen.

So ist die Funktion definiert, die aus dem Mainprogramm aufgerufen werden
soll:

extern Parameter inter_call(GsString name,parameterList &p);



Das ist keine Definition, sondern eine Deklaration.

Du bist hier aus mehreren Gründen völlig falsch. Bitte suche Dir die
passende Gruppe für Dein Problem. Welche das ist, kann ich Dir nicht
sagen, da ich nicht abschàtzen kann, wo Dein Problem zu suchen ist.

Mit C hat Dein Problem jedenfalls nichts zu tun.

Gruß. Claus

Ähnliche fragen