Wenn ich versuche, meine eigene Version von Python zu bauen mit:Wie lokale Python zu ignorieren, wenn Python Sourcen
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install
ich einige Fehler bei der Installation finden Sie unter:
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): Umzug R_X86_64_32 gegen `.rodata.str1.8 'kann nicht verwendet werden, wenn ein gemeinsames Objekt gemacht wird; neu kompilieren mit -fPIC /usr/local/lib/libpython2.7.a: konnte keine Symbole lesen: Bad Wert
Das Problem beginnt, wenn der Linker die neu kompilierte Bibliothek zu verwenden /usr/local/lib/libpython2.7.a
und nicht versucht.
Wie kann ich verhindern, dass der Linker (configure/make) die Python-Bibliotheken verwendet, die auf dem System installiert sind?
'configure --enable-shared prefix =/app/vendor/python-dev && make && make install' funktioniert für mich (aus dem [Python-2.7.5-Tarball] (http://www.python.org/ftp/python/2.7.5/Python-2.7 .5.tar.bz2) auf Ubuntu 13.04). Wenn der Fehler während des 'make'-Teils auftritt, müssen Sie die volle Ausgabe von' make' hinzufügen. – Aya
Dies ist der einzige Fehler. Es wiederholt sich einfach auch für andere Module. Ich benutze 2.7.4 Tarball. Aber ich habe 2.7.4 auf meinem Rechner, statisch kompiliert (ich denke ohne -fPIC). – Xyand
Sicher, aber der Grund für den Fehler wird viel früher im Build aufgetreten sein, so dass es unmöglich ist, ohne weitere Informationen zu diagnostizieren. Sehen Sie sich [this] (http://mail.python.org/pipermail/python-list/2010-September/587427.html) und die Folgen an. Ich bin mir nicht sicher, ob es das gleiche Problem ist, aber ich kann nicht viel mehr tun, ohne die Ausgabe von 'make' zu sehen. – Aya