Anzeige:
Ergebnis 1 bis 9 von 9

Thema: SharedObject, Executable und StaticLibrary ->Connection?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    17.08.2004
    Ort
    Sydney
    Beiträge
    36

    SharedObject, Executable und StaticLibrary ->Connection?

    Hi,

    also ich habe eine statische Library in der allerhand Funktionen enthalten sind.
    Desweiteren ein Executable welches die statische Libary nutzt.

    Das problem was ich jetzt habe ist, das ich ein sharedobject dynamisch zur Laufzeit hinzulinke und in diesem Funktionen der stat.Library genutzt werden. Manche Funktionen gehen, bei anderen kommt ein SegmentationFault? Im Executable kann ich alle Funktionen problemlos nutzen(warum auch nicht....). Ich habe keine Ahnung warum?

    Danke fuer Hilfe.

    PS: Das executable laedt das .so
    -------------------------------
    Lade das .so mit Hilfe:

    Code:
    InteractionManager::InteractionManager(string soPath, string function)
    {
        module = dlopen((char *)soPath.c_str(), RTLD_LAZY);
        if( !module)
        {
            cerr<<"Could not find so:"<<soPath<<endl;
            exit(1);
        }
    
        dlerror();
        interact = (void (*)(Node*))dlsym(module, (char *)function.c_str());
        if((error = dlerror()))
        {
            cerr<<"Could not find Function: "<<function<<"Error: "<<error<<endl;
            exit(1);
        }
    }
    Geändert von tommy@linux (09-08-2005 um 06:37 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Ist die .so auch von dir compiliert? Ist es eine C++-Library?

    Von G++ 3.2 auf 3.3 und von 3.4 auf 4.0 hat sich nämlich das ABI geändert; C++-Bibliotheken dieser verschiedenen Versionen sind nicht untereinander kompatibel.

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.08.2004
    Ort
    Sydney
    Beiträge
    36

    Yep

    alles mit demselben Compiler gemacht.
    Ich verstehe das nicht ganz. habe am Ende eine Funktion B geschrieben, die dasselbe macht wie eine Funktion A, und A funzt bei beiden, und B nur im Exectuable????

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Also ohne Glaskugel oder Code kann ich nichts machen; und beides hab ich nicht.

    Kannst du deinen Code (incl. so-quellcode etc.) nicht mal irgendwo hochladen und den Link posten?

  5. #5
    Registrierter Benutzer
    Registriert seit
    17.08.2004
    Ort
    Sydney
    Beiträge
    36

    Zu viel

    das waere leider zu viel.... .

    Das Problem ist, das irgendwas beim linken schief geht, denke ich mal.

    Hat jemand mal ein aehnliches problem mit einem .so gehabt?

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Vielleicht hast du auch die -fPIC Option vergessen.
    Oder Programm und Library benutzen unterschiedliche Versionen der libc.
    Oder, oder, oder...

    Es gibt zuviele Möglichkeit, ohne genauere Infos wird dir hier niemand helfen können.

    "Wenn ich eine Linkskurve fahre, quietscht irgendwas. Hatte jemand schonmal das selbe Problem?"

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •