我有一个32位.so二进制文件库,我必须生成使用它的64位程序。 有没有办法包装或转换它,所以它可以用于64位程序?
答案 0 :(得分:28)
没有。您不能直接链接到64位程序内的32位代码。
最好的选择是编译一个可以run on your 64bit platform (using ia32)的32位(独立)程序,然后使用一种进程间通信形式与64位程序进行通信。
答案 1 :(得分:5)
有关使用IPC从64位代码运行32位插件的示例,请查看开源NSPluginWrapper。
答案 2 :(得分:4)
这是有可能的,但不是没有一些严肃的魔法,你不会喜欢这个答案。要么模拟32位CPU(不是我不是在开玩笑),要么将主进程切换回32位。虽然模仿可能会很慢。
This is a proof of concept该技术。
然后保存每个内存访问32位库的表,并使它们保持同步。要达到理论上的完整性是非常困难的,但是可行的东西应该很简单,但非常繁琐。
在大多数情况下,我认为两者之间的两个过程然后IPC实际上可能是最容易的,正如所建议的那样。