程序使用的一个库需要静态链接,是一个32位的库。如果使用64位编译器进行编译,它会中断,主要是因为变量类型的长度不同(长度大两倍,大多数)。提供了库的源代码。 程序本身工作在32位和64位。 是否可以将库编译为32位并将其静态链接到64位应用程序?
答案 0 :(得分:6)
基本上,不,你不能静态或动态地链接32位和64位代码,而不是在x86上。
可以做的是编写一个在单独进程中运行的包装器,并使用RPC将库“链接”到您的代码中。 Linux上的nspluginwrapper
会为Flash做类似的事情。
答案 1 :(得分:4)
不可能。你不能从64位代码调用任何32位lib。您必须将它们放在不同的地址空间中。
利用它的一种方法是使用进程间通信(管道,套接字等)。