Pregunta

Tengo un problema con python-config --ldflags en OS X 10.6.2.

Usando mi no es del sistema python.org pitón instalar:

robin-mbp:~ robince$ which python
/Library/Frameworks/Python.framework/Versions/2.5/bin/python
robin-mbp:~ robince$ python-config --ldflags
-L/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config -ldl -lpython2.5

Pero si construyo un programa c incrustación de Python con los LDFLAGS anteriores, da lugar a la pitón sistema que se está incrustado. Parece -lpython2.5 es recoger la pitón sistema en primer lugar, antes de que el que está en el camino -L.

Hasta ahora, la única manera que tengo para trabajar es con

LDFLAGS=-F/ -framework Python

pero cuando se trata de distribuir Realmente me gustaría ser capaz de utilizar Python-config.

Lo que está pasando con la ruta de búsqueda de biblioteca que deja que funcione como se esperaba? De acuerdo con la página del manual de caminos -L deben ser registrados antes de la ruta predeterminada.

¿Hay alguna opción en la línea de 'olvidar el camino de búsqueda predeterminado y la búsqueda sólo rutas especificadas con -L' que podría añadir a la salida de pitón-config para conseguir que funcione?

O ¿hay alguna manera de extraer las banderas -framework de trabajo desde cualquier Python está en el camino (que sería trabajar para lo que el usuario está utilizando, es decir, del sistema python.org, o macports propio integrado)?

¿Fue útil?

Solución

Lo sentimos para responder a mi propia pregunta, pero me dieron una respuesta increíblemente rápida en la lista de correo pythonmac-sig, donde también le pregunté. Es un error por el pitón actual: http://bugs.python.org/issue7541

solución sugerida:

  

La solución más sencilla es abrir una   ventana de terminal y ejecutar el   comandos siguientes:

     

cd   /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config   ln -s libpython2.5.a   libpython2.5.dylib

     

Esto asegurará que el enlazador OSX   sabe que es compartida libpython   biblioteca y enlaces a esta biblioteca. Por   por defecto las búsquedas de engarce para un OSX   .dylib en todo el trayecto del enlazador y   sólo entonces busca .a archivos.

EDIT: Además de actualización:

  

Si usted puede agregar banderas-mac específico en   su sistema de construcción que podría añadir   -Wl,-search_paths_first a LDFLAGS   en OSX, esto asegura que el enlazador   busca tanto .dylib y archivos en .a   un directorio de la ruta de enlace antes   de pasar a la siguiente directorio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top