2012-01-14 94 views
2

可能重複:
Linking 32-bit library to 64-bit program32位和64位代碼可以混合使用嗎?

一項所述的程序使用的程序庫,需要靜態鏈接的,是一個32位的一個。如果使用64位編譯器進行編譯,則會中斷,主要是因爲變量類型的長度不同(大多數情況下長爲兩倍)。提供了庫的源代碼。 程序本身在32位和64位工作。 是否可以將庫編譯爲32位並將其靜態鏈接到64位應用程序?

回答

5

基本上,不,您無法靜態或動態地鏈接32位和64位代碼,而不是x86。

什麼可以 do是編寫一個包裝,運行在一個單獨的進程,並使用RPC「鏈接」庫到您的代碼。 Linux上的nspluginwrapper可以做類似於Flash的操作。

3

沒有它不可能。你不能從64位代碼中調用任何32位庫。你必須把它們放在不同的地址空間。

利用它的一種方法是使用進程間通信(管道,套接字等)。