Forum: PC-Programmierung Link Programm mit Dynamic Lib


von Streikbrecher (Gast)


Lesenswert?

Hallo,

ich möchte ein Programm compilieren, das eine Library mit dlopen() 
öffnet.

Das mache ich deshalb, da es möglich sein soll verschiedene Libs zu 
laden.

Aber wie rufe ich GCC korrekt auf?

'gcc dlopenUSER.c -o dlopenUSER -ldl' liefert mir eine Fehlermeldung, 
weil foo() undefined ist.
foo() wird also von der Lib bereitgestellt, die ich mit dlopen() laden 
möchte.

Muss ich dem Linker also eine(!) Lib mitgeben, damit er mir das baut?
Oder welche Flags muss ich setzen, damit der Linker rafft, dass die Lib 
erst zur Laufzeit geladen wird?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn das Programm die DLL erst zur Laufzeit lädt, darfst Du Funktionen 
aus der DLL nicht über ihren symbolischen Namen aufrufen, sondern musst 
nach dlopen() die Adressen der Funktionen mit dlsym() bestimmen und über 
Funktionspointer aufrufen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.