MacOS'un dll eşdeğeri


9

yani, bir DLL bir klasöre benzer, ancak birden fazla program / yürütülebilir dosyaları bir kerede erişmek için izin verir, böylece bellek tasarrufu (sanırım).

Mac'in bir DLL eşdeğeri nedir? İçindeki Google Chrome klasörleri arıyordum ~/Library/Application Supportve normal Windows Default.dll yerine sadece bir klasör, "Varsayılan" normal bir dosya olarak, içeriği ile, düzenli olarak DLL içinde olacağını varsayalım.

Mac eşdeğeri aynı işlevi sağlıyor mu?


Bu klasör yalnızca Chrome profilinizdir (kişisel ayarlar, yer işaretleri vb.). İstediğiniz uygulama paketinin içinde bulunur.
Daniel Beck

Eh, / Library / Application Support / Google / Chrome / Default / Extensions / (bazı garip uzun dize) klasörünün içine baktığınızda, temalar için birçok png ve css dosyası bulabilirsiniz. Windows'da DLL içinde bulunan temalar klasörü.
kalaracey

Bu durumda, Chrome geliştiricileri örneğin Windows'ta belleği korumak için bir numara kullandılar. OS X'te bir DLL eşdeğeri kullanmazlar. Örneğin Firefox'a bakarsanız, kullanıcı profillerini tüm işletim sistemlerinde ayrı ayrı dosyalar olarak saklarlar.
Daniel Beck

Şimdi gerçekten ne soruyorsunuz ilginç olacak: Genel olarak "OS X'teki DLL'ler" veya default.dllMac OS X'teki eşdeğeri nedir. Cevaplar oldukça farklı görünüyor.
Daniel Beck

4
A dllklasör veya yakınında herhangi bir yer değildir. Diğer programlar tarafından çağrılabilecek yöntem ve işlevleri barındırır, böylece bunları kendileri uygulamasına gerek yoktur. Bazen a dll, simgeler gibi kaynakları da tutar.
Bobby

Yanıtlar:


12

OS X üzerinde bir Windows DLL dosyasına eşdeğerler, Frameworks (Cocoa) veya dylibs (BSD) 'dir. Sağlanan sistem sırasıyla /usr/libve içerisindedir /System/Library/Frameworks.

Bahsettiğiniz klasör, Windows'ta uygulamalarınızın kişisel ayarlarını içeren (veya şimdi?) Klasörlere Library/Application Supportbenzer .Application DataAppRoaming

default.dllOS X'teki Chrome'un eşdeğerinin ne olduğunu bilmese de, uygulama paketi aşağıdakileri içerir:

alternatif metin

Boyuttan tahmin etmek, Google Chrome Frameworkönemli gibi görünebilir ( Frameworkssadece yukarıdaki klasör çok fazla ilgi içermiyor)


3

OS X, Linux veya herhangi bir POSIX'te gerçek DLL yoktur. Farklılaşma yapmazlar.

Neden?

  1. Bir sürü Mac öğesi, bağımsızdır (.app'ler gerçekten sadece klasörlerdir).

  2. Mac OS X (ve Linux ve diğer * nixes) 'de ikili kullanmak ELF ikisi için (yürütülebilir ve Kitaplık Biçimi anlamına gelmektedir) kütüphaneler ve yürütülebilir.

Orada bulduğunuz Varsayılan dosya muhtemelen bir ELF ikili dosyasıdır.

Güncelleme : dmckee, .dylibs'in Mac'lere özel Mach-O formatı altında olduğuna dikkat çekiyor . Ancak ikisini gözle ayırt etmek zordur, çünkü hiçbiri aslında herhangi bir uzantıya ihtiyaç duymaz.


1
Windows'daki DLL dosyaları yürütülebilir dosyalarla aynı formatı kullanır (veya en azından bir kerede bir kez), değil mi?
Daniel Beck


Bilmeniz iyi - Yazılarınızı okuduğumda Unix'leri seçtiğinizi düşündüm, ama özellikle ELF'den bahsettiniz.
Daniel Beck

1
Ehm ... bu sadece yanlış. Paylaşılan nesne dosyaları (.so) ve dinamik kitaplıklar (.dylib) Linux ve Mac OS'de Windowns'ta dinamik olarak yüklenebilen kitaplıklar (.dll) ile aynı amaca hizmet eder. Bir ambalaj standardını yürütülebilir dosyalar ile paylaşmaları bu gerçeği değiştirmez.
dmckee --- eski moderatör yavru kedi

1
@digitxp: Konuyu kaçırdınız. Ambalaj bu konuda önemli değil. Windows .dll, Mac OS .dylib ve .so paylaşılan nesne dosyalarının (Mac OS de .dylib'in kullandığı kadar zarif olmasa da kullanabilir) hepsi aynı hizmeti sağlar: çalışma zamanı, dinamik olarak yüklenebilir, paylaşılan kitaplıklar.
dmckee --- eski moderatör yavru kedi

2

En yakın linux ve Mac eşdeğerlerine sırasıyla "paylaşılan nesne dosyaları" (genellikle .so uzantısını alır) ve dinamik kitaplıklar (genellikle bir .dylib uzantısını depolar) denir.

Paylaşılan nesneler tipik Linux sistemlerinde yaygın olarak kullanılır, Dinamik kütüphaneler her yerde bulunmaz, çünkü .app biçimi daha büyük exectuatble "dosyaları" pahasına birden çok mimariyi desteklemek için çok güvenli bir dağıtım mekanizması sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.