Связывание 32-битной библиотеки с 64-разрядной программой

У меня есть 32-разрядная бинарная библиотека .so, и я должен создать 64-битную программу, которая ее использует. Есть ли способ обернуть или преобразовать его, поэтому его можно использовать с 64-битной программой?

Ответы

Ответ 1

Нет. Вы не можете напрямую ссылаться на 32-битный код внутри 64-битной программы.

Лучшим вариантом является сборка 32-разрядной (автономной) программы, которая может

Ответ 2

Для примера использования IPC для запуска 32-разрядных плагинов из 64-битного кода посмотрите на открытый NSPluginWrapper.

Ответ 3

Возможно, но не без какой-то серьезной магии за кулисами, и вам не понравится ответ. Или эмулируйте 32-битный ЦП (нет, я не шучу), или переключим основной процесс на 32 бит. Эмулирование может быть медленным.

Это доказательство концепции метода.

Затем сохраните таблицу каждого доступа к памяти и из 32-битной библиотеки и сохраните их в синхронизации. Очень сложно получить теоретическую полноту, но что-то работоспособное должно быть довольно простым, но очень утомительным.

В большинстве случаев я считаю, что два процесса, а затем IPC между ними могут быть самыми легкими, как это было предложено иначе.