2009-07-31 9 views
8

Je dois créer une version Mac de nos bibliothèques pour l'un de nos clients. Je ne suis pas si familier avec les bibliothèques dynamiques sur Mac, mais d'après ce que je comprends, j'ai 2 options: .dylib ou frameworks. Quelle serait la meilleure option? Pourquoi?en créant un .dll sur un mac: .dylib ou framework?

Peu de questions connexes:

  • Si je comprends bien, .dylib ont à être installés dans l'un des répertoires stnadard UNIX tels que/usr/lib, etc. Par conséquent l'aide d'un .dylib devrait faire L'installation de mon client est-elle beaucoup plus complexe, puisqu'ils auront probablement besoin de demander l'autorisation d'écrire quelque chose dans un dossier système?
  • Les frameworks peuvent-ils être privés et intégrés dans le bundle de mon client? Donc, personne d'autre ne peut les voir/les utiliser?

Toute critique constructive/commentaires/idées plus que bienvenus. Merci d'avance.

Alex

+0

Êtes-vous à la recherche d'une installation par glisser-déposer ou d'une application d'installation (.pkg) qui gère tout? Si c'est le dernier, alors les permissions ne devraient pas être un problème, car à peu près tous les programmes d'installation que j'ai lancés demandent un mot de passe administrateur (obtenant ainsi des permissions d'administrateur) dès le départ. –

Répondre

8

.dylib est similaire à .so sur Linux.

Les frameworks sont essentiellement la manière OSX de distribuer les bibliothèques et les en-têtes ensemble. Ils constituent l'ensemble d'applications équivalent pour la distribution de bibliothèque.

soit la méthode si vous voulez vous assurer que les autres ne les utilisent pas, vous devriez utiliser bibliothèques statiques (.a fichiers) et d'obtenir votre client pour les lier statiquement dans leur application.

Sinon, il n'y a pas vraiment de différence entre Frameworks et .dylib, sauf que le précédent est plus agréable pour les développeurs OSX.

Soit peut être intégré dans un ensemble d'application client, otool/install_name_tool les gérer tous les deux bien.

+1

Vous pouvez utiliser '.so' sous OS X aussi, n'est-ce pas? Je l'ai déjà vu de toute façon. – mk12

+0

@ mk12 Oui. En fait, tous les modules Apache dans OS-X sont '.so' – Hawken

+0

Hi! Comment puis-je intégrer dylib dans un ensemble d'applications client? J'essaie d'intégrer des bibliothèques OpenCV dans une application Qt. –

Questions connexes