создание .dll на Mac: .dylib или рамки? - PullRequest
11 голосов
/ 31 июля 2009

Мне нужно создать версию наших библиотек для Mac для одного из наших клиентов. Я не очень знаком с динамическими библиотеками на Mac, но насколько я понимаю, у меня есть 2 варианта: .dylib или frameworks. Какой будет лучший вариант? Почему?

Несколько связанных вопросов:

  • Если я правильно понимаю, .dylib должен иметь для установки в один из стандартных каталогов UNIX, таких как / usr / lib и т. Д. Следовательно, использование .dylib должно значительно усложнить установку моего клиента поскольку им, вероятно, потребуется запросить разрешение на запись чего-либо в системную папку?
  • Могут ли фреймворки быть закрытыми и встроенными в пакет моего клиента? Значит никто другой не может их увидеть / использовать?

Любая конструктивная критика / комментарии / идеи более чем приветствуются. Заранее спасибо.

Alex

1 Ответ

11 голосов
/ 31 июля 2009

.dylib аналогично .so в Linux.

Фреймворки - это просто OSX-способ распределения библиотек и заголовков вместе. Они являются эквивалентом комплекта приложений для распространения библиотеки.

Если вы хотите, чтобы другие люди не использовали их, вы должны использовать статические библиотеки (.a файлы) и заставить своего клиента статически связать их в своем приложении.

В противном случае между Frameworks и .dylib нет большой разницы, за исключением того, что предыдущий вариант лучше для разработчиков OSX.

Любой из них может быть встроен в комплект приложений клиента, otool/install_name_tool отлично справляется с обоими.

...