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 definiert

    Wenn 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 directory

    Meine 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!





  • 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...


Anmelden zum Antworten