shared object selbst erstellen
-
Hi,
ich möchte mein eigenes shared object schreiben, was so weit eigentlich auch schon funktioniert.
#include <stdio.h> void soTest(void){ printf("Ich bin ein shared object.\n"); }
so kompilieren ich das ganze:
g++ main.cpp -shared -o libtestSo.so#include <stdio.h> int main(int argc,char *argv[]){ soTest(); return 0; }
Wenn ich das ganze versuche zu kompilieren kommt folgendes:
main.cpp: In function »int main(int, char**)«:
main.cpp:4: Fehler: »soTest« wurde in diesem Gültigkeitsbereich nicht definiertWenn ich folgendes mache:
#include <stdio.h> void soTest(); int main(int argc,char *argv[]){ soTest(); return 0; }
Kompiliert er zwar aber ich bekomme folgende Fehlermeldung:
./a.out: error while loading shared libraries: libtestSo.so: cannot open shared object file: No such file or directoryMeine Frage nun, kompiliere ich das shared object überhaupt richtig und wenn ja wie binde ich das shared object richtig in mein Programm ein.
Gruß
setcookie
-
ich tippe mal drauf, dass irgendwelche pfade nicht richtig gesetzt sind. kopier dein .so doch mal dahin wo alle anderen .so's auch sind...
-
Ok, wenn ich mein shared object nach /usr/lib werfe geht es.
Was muss ich denn nun aber machen, wenn ich z.B. das shared object in dem selben Ordner wie die Application selbst haben möchte.Danke für deinen Tip!
-
probier's mal damit: http://man.netbsd.se/?find=ldconfig+8+30
-
Werde ich mir mal anschauen.
Dank dir für deine Hilfe!
-
In der Umgebungsvariable LD_LIBRARY_PATH kannst Du auch lokale Pfade angeben, wenn's nicht systemweit in der /etc/ld.so.conf sein soll...