我有一个 32 位 .so 纯二进制库,我必须生成使用它的 64 位程序。有没有办法包装或转换它,所以它可以与 64 位程序一起使用?
问问题
32104 次
3 回答
31
不可以。您不能直接链接到 64 位程序中的 32 位代码。
最好的选择是编译一个可以在您的 64 位平台上运行的 32 位(独立)程序(使用 ia32),然后使用一种进程间通信的形式从您的 64 位程序与其进行通信。
于 2009-12-22T01:30:32.333 回答
5
有关使用 IPC 从 64 位代码运行 32 位插件的示例,请查看开源NSPluginWrapper。
于 2009-12-22T01:58:15.087 回答
4
这是可能的,但并非没有幕后一些严肃的魔法,你不会喜欢这个答案。要么模拟 32 位 CPU(不,我不是在开玩笑),要么将主进程切换回 32 位。不过模拟可能很慢。
然后保留一个表,记录对 32 位库的每次内存访问,并使它们保持同步。很难达到理论上的完整性,但可行的东西应该很容易,但很乏味。
在大多数情况下,我相信两个进程,然后是两者之间的 IPC 实际上可能是最简单的,正如所建议的那样。
于 2009-12-22T01:51:32.400 回答