Как собрать Mach-0 для разных архитектур? - PullRequest
1 голос
/ 05 июня 2010

У меня есть несколько dylibs для загрузки из python с помощью ctypes. Я могу загрузить libbass.dylib без проблем, но я не могу загрузить скомпилированный libmp3lame.dylib. Вот ошибка, которую я получаю.

OSError: dlopen (libmp3lame.dylib, 6): подходящее изображение не найдено. Нашел: libmp3lame.dylib: mach-o, но неправильно архитектура

Затем я проверяю тип файла этих библиотек. Вот результат работы libbass.dylib:

libbass.dylib: Mach-O universal binary with 2 architectures
libbass.dylib (for architecture i386): Mach-O dynamically linked shared library i386
libbass.dylib (for architecture ppc): Mach-O dynamically linked shared library ppc

А вот скомпилированный:

libmp3lame.dylib: Mach-O 64-bit dynamically linked shared library x86_64

Я скомпилировал библиотеку lame с инструкциями по установке:

./configure
make
make install

Я новичок в системе Mac, возникает проблема: как создать libmp3lame.dylib, чтобы он поддерживал другую архитектуру, которую я хочу?

Спасибо.

1 Ответ

2 голосов
/ 16 ноября 2010

Просто беги:

CFLAGS="-arch i386 -arch x86_64 -arch pcc" ./configure

Для получения дополнительной информации см. http://developer.apple.com/library/mac/#technotes/tn2005/tn2137.html

...