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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.