将32位库链接到64位程序

Krz*_*Goj 18 linux 64-bit 32-bit 32bit-64bit

我有一个32位.so二进制文件库,我必须生成使用它的64位程序.有没有办法包装或转换它,所以它可以用于64位程序?

Ree*_*sey 28

不能.您不能直接链接到64位程序内的32位代码.

最好的选择是编译一个可以在64位平台上运行的32位(独立)程序(使用ia32),然后使用一种进程间通信形式与64位程序进行通信.

  • 操作系统明确地处理了这个问题,但是在Linux或现代64位Windows操作系统中没有任何允许这样做的,所以你必须使用我发布的解决方法. (7认同)
  • @Reed:那么Win95是如何管理从32位代码调用16位a th'thunking'的过渡?是在汇编程序级别更改堆栈指针和寄存器? (3认同)
  • x86_64使用与x86不同的调用约定,以及不同数量的regiters(double)使得更难将所有2个体系结构链接在一起 (2认同)

Zan*_*ynx 5

有关使用IPC从64位代码运行32位插件的示例,请查看开源NSPluginWrapper.