Comment puis-je créer une bibliothèque dynamique (dylib) avec Xcode?

Je suis en train de construire quelques utilitaires de ligne de commande dans Xcode (plaine C, pas de Cacao). J'ai envie de tous les avoir à utiliser ma version personnalisée de libpng, et je veux économiser de l'espace par le partage d'une copie de la bibliothèque parmi tous les exécutables (je n'ai pas l'esprit de re-distribuer .dylib avec eux).

Dois-je faire de la magie pour obtenir libpng exportation de symboles?

Ne "Lien Binaire Avec les Bibliothèques" phase de construction de lien statique?

Apple docs mentionner le chargement de bibliothèques au moment de l'exécution avec dlopen, mais comment je peux faire Xcode créer un exécutable sans jamais se plaindre de symboles manquants?


Je crois que j'ai compris:

  • libpng n'était pas relier correctement, parce que j'ai construit 32/64-bit fichiers exécutables 32 bits et de la bibliothèque. Paramètres de construction de la bibliothèque et des exécutables doivent correspondre.

  • libpng de la config.h a besoin d'avoir des tonnes d'définit comme #define FEATURE_XXX_SUPPORTED

  • "Lien Binaire Avec les Bibliothèques" phase de construction gère les bibliothèques dynamiques très bien, et DYLD_FALLBACK_LIBRARY_PATH variable d'environnement est nécessaire pour le chargement .dylibs à partir de l'application bundle.

  • J'aimerais vous suggérer de mach-o tag, mais je ne crois pas que ça vaut la peine de suppression des balises existantes en faveur de cela.
InformationsquelleAutor Kornel | 2008-10-11