#macos #build
#macos #сборка
Вопрос:
Мне нужно создать библиотеку (Ipopt) в Mac OS X и использовать ее из двух разных программ (Python и Matlab). Однако одна программа является 32-разрядной, а другая — 64-разрядной. Должен ли я создавать две отдельные библиотеки из двух архитектур, а затем соответствующим образом задавать путь для каждой программы? Или я могу создать обе архитектуры в одном и том же файле (файлах) библиотеки, и программа выберет правильную архитектуру для загрузки? Если я могу, то как?
Спасибо!
Ответ №1:
Вы можете создать обе архитектуры и объединить их в один двоичный файл. Инструмент для этого lipo
.
Например, если вы создали libpopt как 32-разрядную библиотеку и поместили ее в lib/
, и снова собрали ее как 64-разрядную библиотеку и поместили ее lib64/
, то команда для объединения этих двух может быть:
lipo lib/libpopt.a lib64/libpopt.a -create -output libUniversal/libpopt.a
Для получения дополнительной информации см. Справочную страницу lipo (здесь или через man lipo
).
Комментарии:
1. Прохладный. Раньше не знал о lipo.