Sto cercando di costruire Python 2.6 per QGIS su RHEL 5. Durante le riprese di QGIS ottengo il seguente errore:Come posso impostare ccshared = -fPIC mentre eseguo ./configure?
Linking CXX shared library libqgispython.so
/usr/bin/ld: /usr/local/lib/python2.6/config/libpython2.6.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/python2.6/config/libpython2.6.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [src/python/libqgispython.so.1.0] Error 1
make[1]: *** [src/python/CMakeFiles/qgispython.dir/all] Error 2
make: *** [all] Error 2
Quello che ho capire da questo errore è che ho bisogno di costruire con Python 2.6 qualche bandiera, -fPIC
. OK, quindi l'ho trovato nel file configure.in
ma controlla diverse condizioni e sulla base di tali condizioni assegna -fPIC
al flag CCSHARED
.
Quello che ho fatto è stato che dopo aver controllato tutte le condizioni ho aggiunto la seguente riga per usare deliberatamente CCSHARED
come -fPIC
.
CCSHARED="-fPIC";
Ma non ha funzionato ..
come specificare durante la configurazione che voglio impostare CCSHARED
come -fPIC
?
Sfortunatamente, quando ho provato ad eseguire './configure --enable-shared', questo ha causato la mancata compilazione di molti importanti moduli built-in Python (sto cercando di compilare Python 2.7.3 per un sistema Ubuntu 11.04 a 64 bit). Invece di aggiungere '--enable-shared', ho dovuto modificare' Makefile' e aggiungere '-fPIC' dopo' CC = 'come da risposta ashishsony sotto. –
Anche i miei moduli non sono riusciti a compilare, ma è perché avevo il cattivo libpython2.7a già installato in/usr/local/lib! Cancellato quello e reran 'make', e tutto era felice. –
Stavo installando su linux scientifico 6.4 usando i moduli di ambiente. Ho dovuto cancellare l'installazione precedente –