2009-07-31 10 views
8

Ich muss eine Mac-Version unserer Bibliotheken für einen unserer Kunden erstellen. Ich bin nicht so vertraut mit dynamischen Bibliotheken auf dem Mac, aber von dem, was ich verstehe, habe ich 2 Optionen: .dylib oder Frameworks. Was wäre die beste Option? Warum?Erstellen einer DLL auf einem Mac: .dylib oder Framework?

Nur wenige verwandte Fragen:

  • Wenn ich richtig verstehe, .dylib haben in einer der stnadard UNIX-Verzeichnisse installiert werden wie/usr/lib usw. Daher ist eine .dylib verwenden, sollten machen das Installationsprogramm meines Kunden ist viel komplexer, da sie wahrscheinlich die Berechtigung zum Schreiben von etwas in einem Systemordner anfordern müssen?
  • Kann Frameworks private und eingebettet sein in Bündel meiner Kunden? Also kann niemand sie sehen/benutzen?

Jede konstruktive Kritik/Kommentare/Ideen mehr als willkommen. Danke im Voraus.

Alex

+0

Betrachten Sie per Drag-and-Drop-Installation oder einen Installer App bietet (.pkg), die alles behandelt? Wenn es das letztere ist, dann sollten die Berechtigungen kein Problem sein, da so ziemlich jedes Installationsprogramm, das ich ausgeführt habe, nach einem Admin-Passwort fragt (wodurch ich Admin-Berechtigungen erhalte). –

Antwort

8

.dylib ist ähnlich .so auf Linux.

Frameworks sind im Grunde nur die OSX Art und Weise zusammen Bibliotheken und Header zu verteilen. Sie sind das Application Bundle-Äquivalent für die Bibliotheksverteilung.

Bei beiden Methoden, wenn Sie andere Menschen nicht sicherstellen wollen, verwenden Sie statischen Bibliotheken verwenden sollten (.a-Dateien) und bekommen Ihre Kunden statisch sie in ihre Anwendung zu verknüpfen.

Ansonsten gibt es nicht wirklich viel Unterschied zwischen Frameworks und .dylib außer der Stand ist schöner für OSX-Entwickler.

Entweder kann innerhalb eines Kunden Application-Paket eingebettet werden, otool/install_name_tool sie beide feine handhaben.

+1

Sie können '.so' auch unter OS X verwenden, oder? Ich habe es sowieso schon gesehen. – mk12

+0

@ mk12 Ja. Eigentlich sind alle Apache-Module in OS-X '.so' – Hawken

+0

Hallo! Wie kann ich Dylib in ein Kundenanwendungspaket einbetten? Ich versuche, OpenCV-Bibliotheken in eine Qt-App einzubetten. –

Verwandte Themen