ничего из финка макпорта и доморощенного не пригодится на льве? - PullRequest
0 голосов
/ 25 марта 2012

У меня есть библиотека (flam3), которая зависит от нескольких служебных библиотек из unix (xml2, jpeg, png, z), и я пытаюсь создать приложение на Lion, которое использует ее.Я строю с последним Xcode и когда я пытаюсь связать с библиотеками из fink, macports и homebrew, я получаю ту же ошибку:

ld: предупреждение: игнорирование файла / opt / local / lib / libxml2.a, файл был создан для архива, который не связан с архитектурой (i386)

, и библиотеки выглядят не так, как работают:

bash-3.2 $ file / sw / lib / libxml2.a /sw/lib/libxml2.a: случайная библиотека текущего архива

по сравнению

файл bash-3.2 $ ~ / Documents / FLAM3 / libflam3.a / Users / spot / Documents/FLAM3/libflam3.a: универсальный двоичный файл Mach-O с 2 архитектурами /Users/spot/Documents/FLAM3/libflam3.a (для архитектуры x86_64): текущая библиотека случайных архивов ar /Users/spot/Documents/FLAM3/libflam3.a(для архитектуры i386): текущая случайная библиотека архива

это библиотека, которую я скомпилировал с Xcode.

Есть ли способ заставить Xcode принять эту библиотеку?Есть ли способ получить fink / macports / homebrew для создания библиотеки, которая работает с Xcode?Похоже, я "делаю это неправильно", поскольку все эти проекты были бы бесполезны, если бы у всех была такая проблема ... но я не чувствую, что сделал что-то необычное.Помощь

1 Ответ

1 голос
/ 29 марта 2012

Проблема в том, что ваш libxml2.a не построен как "Универсальный бинарный файл". То есть он не содержит всех необходимых архитектур (в вашем случае я считаю, что это i386). Вам нужно попросить fink, macports или homebrew собрать / скачать / установить библиотеку со всеми необходимыми платформами. Я знаю, что у macports есть такой флаг (я не помню, как он называется). Команда «file» выводит список всех доступных архитектур для файла .a только в том случае, если файл является полностью универсальным (содержит два или более из ppc, i386, x86_64), в противном случае отображается только обычное сообщение «ar archive ...». Это подтверждает, что ваш libxml2.a имеет только одну архитектуру.

Проблема не в Xcode или Lion. Возможно, изменилась архитектура ссылок по умолчанию на Lion.

...