Shared Library



  • Huhu! Ich möchte unter Linux eine shared library erstellen. Dafür habe ich mal eclipse (mit cdt plugin) angeschmissen und hab in den einstellungen das häckchen bei Shared angeklickt. Kompiliert jetzt auch ohne main funktion, also scheint es ja zu passen. Noch schnell eine Funktion hinzugefügt, kompiliert fertig.

    Jetzt habe ich das problem, dass wenn ich z.B. aus Mono (mit DllImport) die Funktion starten will, bekomme ich immer eine exception, EntryPointNotFound. Also habe ich gaanz lange gegoogelt, aber nichts wirklich passendes gefunden. Also wenn ich das richtig verstanden habe muss ich die Funktion in der library noch irgendwie exportieren. Aber wie? Einfach ein export davor schreiben hilft nicht...

    Könnt ihr mir helfen?

    Bevor ichs vergess, ich hab also als Quellcode nur das hier:

    void test()
    {
      return;
    }
    

    Bye,
    TheCurse



  • exportieren musst du nichts. Das ist bei Windows DLLs irgend wie so.

    Wenn es sich um ein C++ Projekt handelt, könnte dir höchstens das Namemangeling Probleme bereiten. extern "C" sollte helfen:

    extern "C" {
    void test() {}
    }
    

    Ansonsten schau dir die Library mal mit nm an, das zeigt dir die vorhandenen Symbole an.



  • Ahh, vielen Dank, so funktioniert es dann auch!


Log in to reply