Мне трудно понять концепцию dylibs.
В настоящее время я разрабатываю кроссплатформенную игру на С++ с использованием нескольких внешних dylib. С графическим интерфейсом CMake для OSX я создал почти все свои зависимости для своей программы, включая Box2D, SFML, Thor и CEGUI (в процессе), и поместил их в определенные папки на рабочем столе. Поскольку я не знаком с этими библиотеками, я создал тестовый проект, включающий все мои зависимости с Soul objectif, чтобы проверить, работают ли мои dylibs.
Вот что я понимаю о dylibs:
Dylibs должен находиться внутри вашего пакета приложений в папке
Frameworks
.Их необходимо связать с вашим проектом через настройки сборки в XCode.
Dylibs помогает уменьшить размер приложения по сравнению со статическими библиотеками.
Имея это в виду, я поиграл с настройками и фазами сборки для своего тестового проекта и создал сценарий для каждой зависимости, который будет копировать dylibs с моего рабочего стола в папку Frameworks
моего пакета приложений каждый раз, когда я собираю проект.
Приложение, включая все его функции из внешних библиотек, работает.
Единственное, чего я не понимаю в этом, так это то, как dylibs «уменьшают размер приложения», если мне нужно скопировать их все в мой пакет приложений? Я предполагаю, что если бы мое тестовое приложение было запущено на другом компьютере, оно, вероятно, сработало бы, потому что все находится в комплекте приложений. Но разве это не противоречит цели dylibs?
Вот ссылка на документацию Apple по программированию динамических библиотек, с которой я ознакомился.