Domanda

Ho un problema con python-config --ldflags su OS X 10.6.2.

Utilizzando il mio non di sistema python.org python installazione:

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

Ma se io costruisco un programma c embedding Python con le LDFLAGS di cui sopra, il risultato e 'il pitone sistema da incorporato. Sembra -lpython2.5 è in ripresa il pitone primo sistema, prima di quello nel percorso -L.

Finora l'unico modo che ho preso a lavorare è con

LDFLAGS=-F/ -framework Python

, ma quando si tratta di distribuire Mi piacerebbe davvero essere in grado di utilizzare python-config.

Che cosa sta succedendo con il percorso di ricerca della libreria che si ferma a farlo funzionare come previsto? Secondo la pagina man percorsi -L devono essere cercati prima che il percorso predefinito.

C'è qualche opzione sulla falsariga di 'dimenticare il percorso di ricerca predefinito e cercare solo i percorsi specificati con -L' che avrei potuto aggiungere alla uscita python-config per farlo funzionare?

O c'è un modo per estrarre i lavoro bandiere -Framework da qualsiasi Python è sulla strada (che avrebbe funzionato per ciò che l'utente sta usando, ad esempio, del sistema python.org, macports o possedere costruito)?

È stato utile?

Soluzione

Mi dispiace di rispondere alla mia domanda, ma ho ricevuto una risposta sorprendentemente rapida sulla mailing list pythonmac-sig, dove ho anche chiesto. Si tratta di un bug con pitone corrente: http://bugs.python.org/issue7541

soluzione suggerita:

  

La soluzione più semplice è quello di aprire un   finestra terminale ed eseguire il   seguenti comandi:

     

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

     

Questo farà sì che il linker OSX   sa che libpython è un condivisa   biblioteca e link a questa libreria. Di   di default le ricerche linker OSX per un   .dylib sull'intero percorso linker e   solo allora cerca i file .a.

EDIT: Ulteriore aggiornamento:

  

Se è possibile aggiungere le bandiere specifiche per mac in   il vostro sistema di compilazione è possibile aggiungere   -Wl,-search_paths_first a LDFLAGS   su OSX, questo assicura che il linker   sembra sia .dylib e .a file in   una directory nel percorso di collegamento prima   passare alla directory successiva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top