PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KDevelop-Projekt und shared libs



gentoo7
28-09-2004, 10:21
Hallo zusammen,
ich bin gerade dabei ein Plugin für KDevelop zu schreiben. Hierbei habe leider ein kleines Problem:
Ich versuche shared libraries zu Laufzeit nachzuladen. Dies funktioniert eigentlich auch ganz toll, bis auf die Tatsache, dass ich nur in der Lage bin ".so"-Dateien zu öffnen. Sobald ich versuche die dazugehörige ".la"-Datei zu laden bekomme ich die Fehlermeldung: "Invalid elf header".

Ich habe das Laden mittels:

void *handle = dlopen(fileName.ascii(), RTLD_NOW|RTLD_LOCAL);
und mittels

KLibLoader *libLoader = KLibLoader::self();
KLibrary *lib = libLoader->library(fileName);
versucht.

Die zu ladende Library wird mit voller Pfadangabe geladen.
(ich möchte die ".la" laden können, da KDevelop die Projekt-eigenen Libs erstmal in das Unterverzeichnis ".libs" packt und dies innerhalb eines "QFileDialog::getOpenFileName" nicht angezeigt wird. Dies ist ja eigentlich ja auch gut so)

Ich hoffe ich habe mich einiger maßen verständlich ausgedrückt und hoffe, dass mir jemand helfen kann.

Gruß
Gentoo7

anda_skoa
28-09-2004, 17:14
Eine .la Datei ist nunmal keine Library, schon gar keine dynamisch ladbare.

dlopen bzw KLibLoader laden nur .so Dateien

Die la Datei ist eine Beschreibungsdatei von und für libtool. Normale Programm brauchen die nicht.

Das .libs Verzeichnis in einem KDevelopprojekt ist ja nur im Projektverzeichnis, installiert werden die libs wie immer nach prefix/lib, also normalerweise /usr/local/lib oder /usr/local/kde/lib

Ciao,
_