Crear Bibliotecas Compartidas en Mac OS X

Ayer un amigo de Colombia se nos acercaba a preguntarnos la manera más sencilla de crear una biblioteca compartida (Shared Library) en Mac OS X para poder hacer uso de ella desde Python (medante ctypes).

Si bien el compilador de C generalmente utilizado en Mac OS X es el GCC, éste cuenta con adaptaciones por parte de Apple que son particulares de su Sistema Operativo. En particular, la opción -shared que solemos utilizar para crear bibliotecas compartidas bajo la versiones para Linux resulta que se encuentra deshabilitada.

No obstante, Apple sí introdujo una forma propia de crear bibliotecas compartidas en sus extensiones a GCC. Para ello, suponiendo que tenemos un archivo biblioteca.c que contiene el código fuente de nuestra biblioteca, debemos invocar a GCC de la siguiente manera:

gcc -dynamiclib biblioteca.c -o biblioteca.dylib

Si no hay problemas de compilación, este comando creará el archivo biblioteca.dylib, el cual puede ahora ser linkeado dinámicamente desde otras aplicaciones.

A diferencia de los sistemas basados en Linux, Mac OS X parece agregar “.” a su equivalente de la variable de entorno LD_LIBRARY_PATH (DYLD_LIBRARY_PATH), por lo cual no habría necesidad de estar modificando ésta, a menos que se quiera mover la biblioteca a un directorio distinto de donde ejecuta el proceso que hace uso de ella.

También cabe tener en cuenta que esto es simplemente un ejemplo. La forma correcta de manejar el proceso de creación de la biblioteca sería mediante el uso de make o equivalentes.

This entry was posted in Mac OS X, Programacion, Software, Tutoriales. Bookmark the permalink.