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


9

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

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

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


Эта папка - просто ваш профиль 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. Однако трудно различить их по виду, потому что ни один из них на самом деле не требует расширения.


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 позволяет создать очень безопасный механизм распространения для поддержки нескольких архитектур за счет более крупных «файлов».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.