MacOS 'dll эквивалент

9

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

Что является эквивалентом DLL для Mac? Я просматривал папки Google Chrome внутри ~/Library/Application Support, и вместо обычного Windows Default.dll была просто папка «Default» в виде обычного файла, содержание которого, я полагаю, будет регулярно находиться внутри DLL.

Эквивалент Mac обеспечивает ту же функцию?

kalaracey
источник
Эта папка - просто ваш профиль Chrome (личные настройки, закладки и т. Д.). То, что вы хотите, находится внутри пакета приложения.
Даниэль Бек
Что ж, когда вы заглядываете в папку / Library / Application Support / Google / Chrome / Default / Extensions / (какая-то странная длинная строка), вы находите множество файлов png и css для тем. Это папка с темами, которая находится внутри DLL на Windows.
kalaracey
В этом случае кажется, что разработчики Chrome использовали хитрость, например, для сохранения памяти в Windows. Они не используют DLL-эквивалент в OS X. Если вы посмотрите, например, на Firefox, они хранят профили пользователей в виде набора отдельных файлов во всех операционных системах.
Даниэль Бек
Теперь было бы интересно, что вы на самом деле спрашиваете: о "DLLs в OS X" в целом или о том, что эквивалентно в default.dllMac OS X. Ответы кажутся совершенно разными.
Даниэль Бек
4
А dllэто не папка или где-то рядом с ней. Он содержит методы и функции, которые могут вызываться другими программами, так что им не нужно, чтобы они сами их реализовывали. Иногда a dllтакже содержит ресурсы, такие как значки.
Бобби

Ответы:

12

Эквивалентами Windows DLL на OS X являются Frameworks (Какао) или dylibs (BSD). Система поставляется в /usr/libи /System/Library/Frameworksсоответственно.

Папка, которую вы упоминаете, Library/Application Supportпохожа на Application Data(или AppRoamingсейчас?) Папки в Windows, содержащие личные настройки ваших приложений.

Хотя я не знаю, что такое эквивалент для Chrome default.dllна OS X, пакет приложений содержит следующее:

альтернативный текст

Судя по размеру, похоже, что Google Chrome Frameworkэто важно (папка Frameworksчуть выше не представляет особого интереса)

Даниэль Бек
источник
3

В этом отношении нет реальных библиотек в OS X, Linux или POSIX. Они не делают различия.

Почему?

  1. С одной стороны, многие вещи Mac самодостаточны (в конце концов .app - это просто папки).

  2. Двоичные файлы в Mac OS X (и Linux и других * Nixes) используют ELF (что означает «Исполняемый файл» и «Формат библиотеки») как для библиотек, так и для исполняемых файлов.

Файл по умолчанию, который вы там нашли, был, вероятно, двоичным файлом ELF.

Обновление : dmckee указывает, что .dylibs в формате Mach-O , эксклюзивно для Mac. Однако трудно различить их по виду, потому что ни один из них на самом деле не требует расширения.

digitxp
источник
1
DLL в Windows используют тот же формат, что и исполняемые файлы (или, по крайней мере, однажды), не так ли?
Даниэль Бек
Полезно знать - когда я прочитал твой пост, я думал, что ты выделил Unixes, но ты специально упомянул ELF.
Даниэль Бек
1
Эмм ... это просто неправильно. Сохраненные объектные файлы (.so) и динамические библиотеки (.dylib) в Linux и Mac OS служат точно так же, как динамически загружаемые библиотеки (.dll) в Windowns. Тот факт, что они разделяют стандарт упаковки с исполняемыми файлами, не меняет этого факта.
dmckee --- котенок экс-модератора
1
@digitxp: Вы упустили момент. Упаковка не важна в этом вопросе. Совместно используемые объектные файлы Windows .dll, Mac OS .dylib и .so (которые Mac OS также может использовать, хотя и не так элегантно, как использует .dylib) предоставляют одну и ту же услугу: динамически загружаемые, совместно используемые библиотеки времени выполнения.
dmckee --- котенок экс-модератора
2

Ближайшие эквиваленты Linux и Mac называются «общими объектными файлами» (обычно с расширением .so) и динамическими библиотеками (обычно с расширением .dylib) соответственно.

Общие объекты широко используются в типичных системах Linux. Динамические библиотеки не так распространены повсеместно, поскольку формат .app позволяет создать очень безопасный механизм распространения для поддержки нескольких архитектур за счет более крупных «файлов».

dmckee --- котенок экс-модератора
источник