Tengo un programa (específicamente mi entrada para el SO DevDays Countdown app challenge) que se basa en varias bibliotecas dinámicas, a saber, libSDL, libSDL_ttf y otras. Tengo estas bibliotecas instaladas en /opt/local/lib
a través de MacPorts, y muchas personas no las tendrán instaladas (y algunas podrían tenerlas instaladas, pero no en esa ubicación).¿Cómo distribuir un Mac OS X con bibliotecas dependientes?
¿Cómo distribuyo mi programa para que las personas sin estas bibliotecas instaladas puedan ejecutarlo de fábrica? Obviamente tendré que distribuir los diversos archivos .dylib
, pero hacerlo no es suficiente. El cargador dinámico aún busca las bibliotecas instaladas en las ubicaciones donde las tengo instaladas. ¿Hay alguna manera de decirle al cargador dinámico que busque en el directorio actual del ejecutable, como lo que hace Windows con los DLL? Las personas no deberían tener que modificar ninguna variable de entorno (por ejemplo, DYLD_LIBRARY_PATH
), ya que de nuevo quiero que esto funcione de inmediato.
Después de pensarlo, creo que voy a ir con enlaces estáticos para distribución. Si voy a distribuir las bibliotecas dinámicas de todos modos, eso frustrará varios de los propósitos de su uso, así que también podría evitar el dolor de lidiar con el cargador dinámico. –
4. usando la opción 2. anterior, coloque los marcos dentro de su paquete .app (archivo .dmg) y cambie las necesidades ejecutables de las rutas con install_name_tool. Estos son algunos ejemplos de cómo se usa install_name_tool: http://qt-project.org/doc/qt-4.8/deployment-mac.html. Dietrich, ¿podría incorporar esto en su respuesta, por favor? –
@ MilanBabuškov: Parece que esto ya está incorporado en la respuesta a continuación. No veo la necesidad de duplicar información. –