Используя статические версии существующих динамических библиотек
Q: Когда динамическая версия существует в системе, как я соединяюсь против статической версии библиотеки?
A: Когда динамическая версия существует в системе, как я соединяюсь против статической версии библиотеки?
Обычно, компоновщик проходит через каждый путь в путях поиска по одному для нахождения динамической версии библиотеки. Если ни один не найден, это проходит через каждый из тех путей, ища статическую версию той же библиотеки.
Лучший способ явно управлять выбором, которого версия библиотеки соединяется против, состоит в том, чтобы сохранить статические и динамические версии библиотеки в различных каталогах. Пути поиска библиотеки должны тогда быть установлены включать каталоги для поиска библиотек с путем к статической библиотеке, предшествующей пути к динамической библиотеке. На командной строке это сделано при помощи -L опция компоновщика, сопровождаемая Вашими каталогами для поиска. В XCode Вы используете Library Search Paths установка сборки, как показано на рисунке 1.


Во время процесса сборки используйте флаг компоновщика -search_paths_first. В XCode эта опция установлена в Other Linker Flags установка сборки, как показано на рисунке 2. Эта опция компоновщика заставляет компоновщика смотреть в каждом из путей поиска для динамической библиотеки и, если ни один не найден, это ищет статическую библиотеку. Если нет никакой библиотеки, найденной компоновщиком, продолжают искать исправные тракты. Когда существует динамическая версия библиотеки в стандартных путях поиска системной библиотеки, этот метод также полезен при попытке соединиться против статических собственных библиотек.


История версии документа
| Дата | Примечания |
|---|---|
| 24.10.2006 | Новый документ, иллюстрирующий, как выбрать статическую версию библиотеки, когда существует динамическая версия библиотеки. |