32 Bit Programm in einem 64 Bit Programm unter Linux rufen



  • HAllo zusammen ,

    gibt es eine Möglichkeit in C++ unter Linux ein
    32 Bit Programm in einem 64 Bit Programm zu rufen ?

    Danke !

    Grüße, Artix



  • Funktionieren die Funktionen fork + exec , bzw. system denn nicht?



  • Hallo ProgChild ,

    ich habe mein Problem etwas abstarkt geschildert.
    Mein Problem ist : der 64 Bit Apache nimmt eine 32 Bit C++ dll nicht.

    Ich darf weder 32 Bit Apache installieren noch 64 Bit C++dll erzeugen.
    Wie kann ich sie trotzdem verheiraten ?

    Danke.

    Grüße, Artix



  • artix schrieb:

    Hallo ProgChild ,

    ich habe mein Problem etwas abstarkt geschildert.
    Mein Problem ist : der 64 Bit Apache nimmt eine 32 Bit C++ dll nicht.

    Ich darf weder 32 Bit Apache installieren noch 64 Bit C++dll erzeugen.
    Wie kann ich sie trotzdem verheiraten ?

    Danke.

    Grüße, Artix

    Hallo,

    ich denke mal, du meinst Shared-Objects, also .so-Dateien. Linux kennt keine DLL-Dateien.

    Soweit mit bekannt, kann 32-Bit und 64-Bit Code nicht im gleichen Prozess laufen. Dementsprechend ist es unmöglich, eine 32-Bit .so-Datei in einen 64-Bit Prozess zu laden und dort auszuführen.

    Es ist aber durchaus möglich, auf einem System 32- und 64-Bit Anwendungen gleichzeitig laufen zu lassen. Was du tun könntest, wäre deine 32-Bit Datei in eine 32-Bit Anwendung zu laden. Dann erstellst du ein 64-Bit Plugin für Apache, dass z.B. über ein Socket mit der Anwendung kommuniziert, in der die 32-Bit Datei geladen ist.

    So funktioniert auch der nspluginwrapper, der es ermöglicht, ein 32-Bit Plugin in ein 64-Bit Build vom Firefox zu laden. Das ist aber viel Arbeit.



  • Hallo ProgChild,

    wir entwickeln unter Windows und Linux , daher diese Verwechslung mit dlls.
    Ja klar , ich habe eine shared library gemeint .

    Schade , dass es keine einfachere Lösung gibt.

    Danke !!!

    Grüße, Artix



  • Hallo ProgChild,

    noch etwas.

    So wie ich dich verstanden habe , kann ich unter Linux gleichzeitig ,
    einen 64 Bit Apache und einen 32 Bit Apache laufen lassen.
    Stimmt das ?

    Danke.

    Grüße, Artix



  • Artix schrieb:

    So wie ich dich verstanden habe , kann ich unter Linux gleichzeitig ,
    einen 64 Bit Apache und einen 32 Bit Apache laufen lassen.
    Stimmt das ?

    Das geht. Du brauchst ein 64-Bit Linux und du musst die 32-Bit Bibliotheken zusätzlich installieren. Bei den meisten Distributionen kannst du das mit ein paar zusätzlichen Paketen tun.



  • Hallo ProgChild,

    danke !

    Grüße, Artix


Anmelden zum Antworten