GNU/Linux >> LINUX-Kenntnisse >  >> Linux

32-Bit-Bibliothek mit 64-Bit-Programm verknüpfen

Ein Beispiel für die Verwendung von IPC zum Ausführen von 32-Bit-Plugins aus 64-Bit-Code finden Sie im Open-Source-NSPluginWrapper.


Es ist möglich, aber nicht ohne ernsthafte Magie hinter den Kulissen, und die Antwort wird Ihnen nicht gefallen. Emulieren Sie entweder eine 32-Bit-CPU (nein, ich mache keine Witze) oder schalten Sie den Hauptprozess zurück auf 32-Bit. Das Emulieren kann jedoch langsam sein.

Dies ist ein Machbarkeitsnachweis der Technik.

Dann führen Sie eine Tabelle von jedem Speicherzugriff auf und von der 32-Bit-Bibliothek und halten sie synchron. Es ist sehr schwer, zu einer theoretischen Vollständigkeit zu gelangen, aber etwas, das funktioniert, sollte ziemlich einfach, aber sehr mühsam sein.

In den meisten Fällen glaube ich, dass zwei Prozesse und dann IPC zwischen den beiden tatsächlich am einfachsten sein können, wie andernfalls vorgeschlagen.


Nein. Sie können innerhalb eines 64-Bit-Programms nicht direkt auf 32-Bit-Code verlinken.

Die beste Option besteht darin, ein 32-Bit-Programm (eigenständig) zu kompilieren, das auf Ihrer 64-Bit-Plattform ausgeführt werden kann (unter Verwendung von ia32), und dann eine Form der Kommunikation zwischen Prozessen zu verwenden, um von Ihrem 64-Bit-Programm aus mit ihm zu kommunizieren.


Linux
  1. Wie kann man feststellen, ob ein bestimmtes Linux 32-Bit oder 64-Bit ist?

  2. Leistung 32-Bit- vs. 64-Bit-Arithmetik

  3. Umzug R_X86_64_32S gegen Verknüpfungsfehler

  4. Installieren Sie 64-Bit-Ubuntu oder 32-Bit?

  5. Wie kann man die Bitanzahl von Hardware und Betriebssystem bestimmen?

Ist Ihr Ubuntu ein 32-Bit- oder ein 64-Bit-Betriebssystem?

So erkennen Sie, ob Sie einen 32-Bit- oder 64-Bit-Computer unter Linux und Windows haben

Ist Ihr Ubuntu ein 32-Bit- oder ein 64-Bit-Betriebssystem? [GUI + Terminal]

So erkennen Sie, ob es sich um eine 32-Bit- oder 64-Bit-Version von Linux handelt

Wie kann ich überprüfen, ob das Linux-System 32-Bit oder 64-Bit ist?

32-Bit-, 64-Bit-CPU-Betriebsmodus unter Linux