Связать Universal Binary с различными динамическими библиотеками в зависимости от версии OSX или версии процессора - PullRequest
0 голосов
/ 31 марта 2011

На самом деле это два вопроса в одном, но я подозреваю, что у них есть похожие ответы.

У меня есть программа, которая зависит от библиотеки X11, которая в OS10.4 имеет другое имя и находится в другом месте (по сравнению с 10.5 и 10.6).

Эта же программа также зависит от библиотеки, которая не работает на PPC. Эта зависимость может быть удалена при компиляции для PPC, но я хотел бы использовать эту библиотеку, когда смогу (так как она дает ускорения на несколько порядков).

Итак, два вопроса:

  1. Как мне связать динамическую библиотеку, которая находится в другом месте в разных версиях ОС? Или перефразируя - как заставить динамический компоновщик загружать библиотеку из другого места на разных версиях ОС?

  2. Как сделать некоторые части (части Intel) универсальной двоичной ссылки на библиотеку, не имея ссылки частей PPC на эту библиотеку?

Конечно, если есть другие решения моих проблем, я тоже заинтересован.

1 Ответ

1 голос
/ 07 апреля 2011

В руководстве Apple GCC упоминается -Xarch:

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/gcc.1.html

В документации для этого сказано:

Применить параметр к командной строке для архитектуры arch.

Предположительно, вы захотите сделать что-то вроде:

gcc -arch ppc -arch i386 -Xarch ppc -lfoo

Если вы строите из XCode, вы можете сделать это на панели настроек Target.Перейдите к «Другие флаги компоновщика», затем нажмите кнопку «шестеренка» в левом нижнем углу панели и выберите «Добавить условие настройки сборки», и это позволит вам указать различные флаги компоновщика для каждой архитектуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...