2012-01-14 7 views
2

Можно создать дубликат:
Linking 32-bit library to 64-bit programМожно ли смешивать 32-битный и 64-битный код?

Одна из библиотек программа использует, которая должна быть статически связаны между собой, это 32-разрядное один. Если он скомпилирован с 64-разрядным компилятором, он ломается, главным образом потому, что типы переменных имеют разную длину (длиннее в два раза длиннее, в основном). Исходный код библиотеки предоставляется. Сама программа работает на 32 и 64 бит. Возможно ли скомпилировать библиотеку как 32-битную и статически связать ее с 64-битным приложением?

ответ

5

В принципе, нет, вы не можете ссылаться, статически или динамически, 32-битный и 64-битный код, а не на x86 в любом случае.

Что вы может do это написать обертку, которая выполняется в отдельном процессе и использует RPC для «связывания» библиотеки с вашим кодом. nspluginwrapper на Linux делает что-то подобное для Flash.

3

Нет, это невозможно. Вы не можете называть любой 32-разрядный lib из 64-битного кода. Вы должны поместить их в другое адресное пространство.

Один из способов его использования - использовать межпроцессную связь (труба, разъем и т. Д.).

Смежные вопросы