J'ai un programme (spécifiquement mon entrée pour le SO DevDays Countdown app challenge) qui repose sur plusieurs bibliothèques dynamiques, à savoir libSDL, libSDL_ttf, et autres. J'ai ces bibliothèques installées sous /opt/local/lib
via MacPorts, et beaucoup de gens ne les auront pas installés (et certains pourraient les avoir installés, mais pas à cet endroit).Comment distribuer un Mac OS X avec des bibliothèques dépendantes?
Comment puis-je distribuer mon programme afin que les personnes sans ces bibliothèques installées puissent le lancer immédiatement? Évidemment, je vais devoir distribuer les différents fichiers .dylib
, mais cela est insuffisant. Le chargeur dynamique recherche toujours les bibliothèques installées aux emplacements où je les ai installés. Existe-t-il un moyen de dire au chargeur dynamique de regarder dans le répertoire courant de l'exécutable, comme ce que Windows fait avec les DLL? Les utilisateurs ne devraient pas avoir à modifier les variables d'environnement (par exemple, DYLD_LIBRARY_PATH
), car je souhaite à nouveau que cela fonctionne correctement.
Après y avoir réfléchi, je pense que je vais aller avec la liaison statique pour la distribution. Si je distribue les librairies dynamiques de toute façon, cela va à l'encontre de plusieurs des objectifs de leur utilisation, aussi évite-t-on d'avoir mal avec le chargeur dynamique. –
4. en utilisant l'option 2. ci-dessus, placez les frameworks dans votre bundle .app (fichier .dmg) et modifiez les chemins des chemins exécutables avec install_name_tool. Voici quelques exemples d'utilisation de install_name_tool: http://qt-project.org/doc/qt-4.8/deployment-mac.html. Dietrich, pourriez-vous incorporer cela dans votre réponse s'il vous plaît? –
@ MilanBabuškov: Il semble que cela soit déjà incorporé dans la réponse ci-dessous. Je ne vois aucun besoin de dupliquer l'information. –