Не удается загрузить 32-битный dylib из 64-битного процесса и наоборот в OSX? - PullRequest
2 голосов
/ 04 ноября 2011

Вчера я столкнулся с проблемой, когда моя программа завершилась неудачно как 32-битный процесс.

У меня был скомпилированный dylib как 64-битный, и я использовал его в 64-битном приложении.Но когда я повернул его на 32 бит для тестирования и попытался загрузить, это не сработало.dlopen () вернул NULL?

Нужно ли иметь 32-битный и 64-битный dylib для 32-битных и 64-битных двоичных файлов соответственно?Есть ли работа вокруг?

Ответы [ 2 ]

4 голосов
/ 04 ноября 2011

Да, вам нужны 32-битные библиотеки для 32-битных процессов и 64-битные библиотеки для 64-битных процессов. Обходного пути нет.

2 голосов
/ 04 ноября 2011
  1. Вы можете создавать 32-битные двоичные файлы с помощью 64-битного компилятора и наоборот.
  2. Вы можете создавать и запускать 64-разрядные двоичные файлы при загрузке на 32-разрядном ядре и наоборот.
  3. Нельзя связывать 32-разрядные сборки с 64-разрядными двоичными файлами или наоборотнаоборот.
...